实验内容
1.定义类;
2.创建对象并使用对象;
3.类成员访问控制;
4.方法调用及参数传递。
基本要求
1.编写体现面向对象思想的程序;
2.编写创建对象和调用对象的方法的程序;
3.编写体现方法参数传递和方法重载的程序;
4.编写一个类,其成员具有不同的成员访问控制权限;
5.理解static成员的含义和作用。
实验题目
p.306, 9.7 设计一个名为Account的类,它包括:
• —个名为id的int类型私有数据域(默认值为0)。
• —个名为balance的double类型私有数据域(默认值为0)。
• —个名为annualInterestRate的double类型私有数据域,存储当前利率(默认值为0)。假设所有账户利率相同。
• —个名为dateCreated的Date类型的私有数据域,存储账户的开户日期。
• —个用于创建默认账户的无参构造方法。
• 一个用于创建带特定id和初始余额的账户的构造方法。
• id、balance和annualInterstRate的访问器和修改器。
• 数据域dateCreated的访问器。
• 一个名为getMonthlyInterest()的方法,返回月利息。
• —个名为withDraw的方法,从账户提取特定金额。
• —个名为deposit的方法向账户存储特定金额。
画出该类的UML图并实现这个类。
提示:方法getMonthlyInterest()用于返回月利息,而不是利率。月利息是balance*monthlyInterestRate。monthlyInterestRate是annualInterestRate/12。注意,annualInterestRate是一个百分教,比如4.5%。如果输入4.5,你需要将其除以100。
编写一个测试程序,创建一个账户id为1122、余额为20000元、年利率为4.5%的Account对象,使用withdraw方法取款2500元,使用deposit方法存款3000元,然后显示余额、月利息以及这个账户的开户日期。
SOURCE CODE
下面展示一些 内联代码片
。
package test01;
public class TestAccount {
public static void main(String[] args){
Account account1 = new Account(1122, 20000);
account1.setInterestAnnualRate(4.5);
account1.withDraw(2500);
account1.deposit(3000);
System.out.println(account1.getBalance() + "\n" +
account1.getMonthlyInterestRate() + "\n" +
account1.getDateCreated());
}
}
package test01;
import java.util.Date;
public class Account {
private int id;
private double balance;
private double annualInterestRate;
private Date dateCreated;
Account(){
id = 0;
balance = 0;
annualInterestRate = 0;
//dateCreated.getDate();
//dateCreated.toGMTString();
}
/**
* @param uId 用户ID
* @param initBalance 初始余额
* */
Account(int uId, double initBalance){
id = uId;
balance = initBalance;
}
public void setId(int newId){
id = newId;
}
public int getId(){
return id;
}
public void setBalance(int newBalance){
balance = newBalance;
}
public double getBalance(){
return balance;
}
public void setInterestAnnualRate(double newAnnualRate){
annualInterestRate = newAnnualRate;
}
public double getInterestAnnualRate(){
return annualInterestRate;
}
public Date getDateCreated(){
return dateCreated;
}
public double getMonthlyInterestRate(){
return balance * annualInterestRate / 100 / 12;
}
public void withDraw(double withDrawBalance){
balance -= withDrawBalance;
}
public void deposit(double depositBalance){
balance += depositBalance;
}
}