实验一 类与对象

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一类与对象

1. 显示下面代码的输出:

e1 = 2 e2 = 1 t1's i = 2 and j = 1

t2's i = 2 and j = 1

2、下面代码的错误在哪里?

第五行中toString()前应该为一个对象,只有对象才能调用方法,应该改为date.toString()

以下程序注意将两个类分别存放在不同的Java源文件,但同属一个包,注意每个源文件中有且只有一个public class

3、编写一个Account类模拟帐户,它包括:

1、一个名为id的int类型私有账户数据域(默认值为0)。

2、一个名为balance的double类型私有账户数据域(默认值为0)。

3、一个名为annualInterestRate的double类型私有数据域存储当前利率(默认值为0)。假设所有的账户都有相同的利率。

4、一个名为dateCreated的Date类型私有数据域存储账户的开户日期。

5、一个能创建默认账户的无参构造方法。

6、一个能创建特定id和初始余额的账户的构造方法。

7、id、balance和annualInterestRate的访问器和修改器。

8、dateCreated的访问器。

9、一个名为getMonthlyInterestRate( )的方法返回月利率。

10、一个名为withDraw的方法从账户提取特定数额。

11、一个名为deposit的方法向账户存储特定数额。

画出该类的UML图。实现这个类。编写一个测试程序,创建一个账户ID为1122、余额为20000美元、年率为4.5%的Account对象。使用withDraw方法取款2500美元,使用deposit方法存款3000美元,然后打印余额,月利息以及这个账户的开户日期。

UML:

类的实现程序:

package account;

public class Account {

private int id=0;

private double balance=0;

private double annualInterestRate=0;

private java.util.Date dateCreated= new java.util.Date(0);

Account() {

}

Account(int id2,double balance2) {

id=id2;

balance=balance2;

}

public int getId() {

return id;

}

public double getBalance() {

return balance;

}

public double getAnnualInterestRate() {

return annualInterestRate;

}

public void setId(int id) {

this.id=id;

}

public void setBalance(double balance) {

this.balance=balance;

}

public void setAnnualInterestRate(double annualInterestRate) {

this.annualInterestRate=annualInterestRate;

}

public java.util.Date getDateCreated() {

return dateCreated;

}

public double getMonthlyInterestRate( ) {

return annualInterestRate/12;

}

public double withDraw(double money) {

balance-=money;

return money;

}

public void deposit(double money) {

balance+=money;

}

}

测试程序:

package account;

public class TestAccount {

public static void main(String[] args) {

Account account=new Account(1122,20000);

account.setAnnualInterestRate(0.045);

account.withDraw(2500);

account.deposit(3000);

System.out.printf("Extra Money : "+account.getBalance()

+"\nMonthlyInterestRate : "+account.getMonthlyInterestRate()

+"\nDate Created : "+account.getDateCreated());

}

}

4、编写一个程序,提示用户输入一个正整数,然后以降序显示所有小于它的所有素数。使用StackOfInteger类存储这些素数(例如整数为120,则存储2,3,5,….),获取后按倒序显示它们。(以下为StackOfInteger类,请copy至程序)。

StackOfInteger类:

package stackofintegers;

public class StackOfIntegers {

private int[] elements;

private int size;

/** Construct a stack with the default capacity 16 */

public StackOfIntegers() {

this(16);

}

/** Construct a stack with the specified maximum capacity */

public StackOfIntegers(int capacity) {

elements = new int[capacity];

}

/** Push a new integer into the top of the stack */

public int push(int value) {

if (size >= elements.length) {

int[] temp = new int[elements.length * 2];

System.arraycopy(elements, 0, temp, 0, elements.length);

elements = temp;

}

return elements[size++] = value;

}

/** Return and remove the top element from the stack */

public int pop() {

return elements[--size];

}

/** Return the top element from the stack */

相关文档
最新文档