实验一 类与对象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 */