Java 创建子类
我必须使用Account创建一个类,该Account被定义为模拟银行帐户。该账户具有财产账号、余额、年利率、创建日期以及存取资金的方法 如何创建两个子类来检查和保存帐户?支票账户必须有透支限额,但存款不能超支 任何帮助或建议都会很棒,谢谢:Java 创建子类,java,subclass,Java,Subclass,我必须使用Account创建一个类,该Account被定义为模拟银行帐户。该账户具有财产账号、余额、年利率、创建日期以及存取资金的方法 如何创建两个子类来检查和保存帐户?支票账户必须有透支限额,但存款不能超支 任何帮助或建议都会很棒,谢谢: public class Accountdrv { public static void main (String[] args) { Account account = new Account(1122, 20000, 4.5); a
public class Accountdrv {
public static void main (String[] args) {
Account account = new Account(1122, 20000, 4.5);
account.withdraw(2500);
account.deposit(3000);
System.out.println("Balance is " + account.getBalance());
System.out.println("Monthly interest is " +
account.getMonthlyInterest());
System.out.println("This account was created at " +
account.getDateCreated());
}
}
class Account {
private int id;
private double balance;
private double annualInterestRate;
private java.util.Date dateCreated;
public Account() {
dateCreated = new java.util.Date();
}
public Account(int id, double balance, double annualInterestRate) {
this.id = id;
this.balance = balance;
this.annualInterestRate = annualInterestRate;
dateCreated = new java.util.Date();
}
public int getId() {
return this.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 double getMonthlyInterest() {
return balance * (annualInterestRate / 1200);
}
public java.util.Date getDateCreated() {
return dateCreated;
}
public void withdraw(double amount) {
balance -= amount;
}
public void deposit(double amount) {
balance += amount;
}
}
考虑定义一个或多个接口。 例如:
public interface Account
{
public double getAnnualInterestRate();
public Date getDateCreated();
public int getId();
public double getMonthlyInterest();
public void deposit(double amount);
public void withdraw(double amount);
}
public interface CheckingAccount
extends Account
{
public long getOverdraftLimit();
}
添加setter可能是合理的,但我更喜欢在实现类构造函数中设置vlue,或者将setter放在实现类中,但不放在接口中。一个合理的例外可能是在CheckingAccount接口中设置OverdraftLimit
您正在犯一些常见的金钱错误:
货币不是浮点数。它是一个固定的点值。双倍对金钱来说永远都不正确。改为使用long并存储为单位的分数,例如10000=1美元。
了解如何执行兴趣计算。年利率永远不是12*月利率。
您可以在Accountdrv类中为个人操作创建方法