1、设计一个名为Account的账户类,包括: l id私有数据域,int类型(默认值0) l balance私有数据域,double类型(默认值0) l rate私有数据域,double类型(默认值0),且所有账户利率相同 l 以上数据域的访问器与修改器 l dataCreated私有数据域,Date类型 l 日期数据域的访问器 l 无参构造方法 l 指定id和余额的构造方法 l getMonthlyInterest方法,返回月利息(余额*月利率) l withdraw方法,取款 l deposit方法,存款 设计一个名为Checking account的子类,包括: l 透支限定额,受保护的数据域 l toString方法
时间: 2023-06-27 13:04:03 浏览: 121
下面是Account类和CheckingAccount子类的代码实现:
```java
import java.util.Date;
public class Account {
private int id;
private double balance;
private double rate;
private Date dateCreated;
public Account() {
this.id = 0;
this.balance = 0;
this.rate = 0;
this.dateCreated = new Date();
}
public Account(int id, double balance) {
this.id = id;
this.balance = balance;
this.rate = 0;
this.dateCreated = new Date();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public double getRate() {
return rate;
}
public void setRate(double rate) {
this.rate = rate;
}
public Date getDateCreated() {
return dateCreated;
}
public double getMonthlyInterest() {
return balance * (rate / 12);
}
public void withdraw(double amount) {
balance -= amount;
}
public void deposit(double amount) {
balance += amount;
}
}
public class CheckingAccount extends Account {
protected double overdraftLimit;
public CheckingAccount() {
super();
overdraftLimit = 0;
}
public CheckingAccount(int id, double balance, double overdraftLimit) {
super(id, balance);
this.overdraftLimit = overdraftLimit;
}
@Override
public void withdraw(double amount) {
if (balance - amount < -overdraftLimit) {
System.out.println("Withdrawal amount exceeds overdraft limit.");
} else {
balance -= amount;
}
}
@Override
public String toString() {
return "Checking Account #" + getId() + "\nBalance: $" + getBalance() + "\nOverdraft limit: $" + overdraftLimit;
}
}
```
Account类包括id、balance、rate和dateCreated等私有数据域,以及相应的访问器和修改器、构造方法、计算月利息的方法以及存款和取款的方法。
CheckingAccount类是Account类的子类,添加了一个受保护的透支限定额overdraftLimit,以及相应的构造方法、取款方法(重写了Account类的withdraw方法)和toString方法。在取款操作时,如果余额小于透支限定额,则无法取款并输出错误信息。
注意,在实现toString方法时,可以使用父类的getId和getBalance方法来获取账户编号和余额。
阅读全文