package top.qaqaq.java.P279.exer;
public class Account {
private int id; // 账号
private double balance; // 余额
private double annuallntertstRate; // 年利率
public Account(int id, double balance, double annuallntertstRate) {
super();
this.id = id;
this.balance = balance;
this.annuallntertstRate = annuallntertstRate;
}
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 getAnnuallntertstRate() {
return annuallntertstRate;
}
public void setAnnuallntertstRate(double annuallntertstRate) {
this.annuallntertstRate = annuallntertstRate;
}
//月利率
public double getMonthlyInterest() {
return annuallntertstRate / 12;
}
//取款
public void withdraw(double amount) {
if(balance >= amount) {
balance -= amount;
return;
}
System.out.println("余额不足!");
}
//存款
public void deposit(double amount) {
if(amount > 0) {
balance += amount;
return;
}
}
}
package top.qaqaq.java.P279.exer;
public class AccountTest {
public static void main(String[] args) {
Account acct = new Account(1122, 20000, 0.045);
acct.withdraw(30000);
System.out.println("您的账户余额为:" + acct.getBalance());
acct.withdraw(2500);
System.out.println("您的账户余额为:" + acct.getBalance());
acct.deposit(3000);
System.out.println("您的账户余额为:" + acct.getBalance());
System.out.println("月利率为:" + acct.getMonthlyInterest());
}
}
package top.qaqaq.java.P279.exer;
public class CheckAccount extends Account {
private double overdraft;// 可透支限额
public CheckAccount(int id, double balance, double annuallntertstRate, double overdraft) {
super(id, balance, annuallntertstRate);
this.overdraft = overdraft;
}
public double getOverdraft() {
return overdraft;
}
public void setOverdraft(double overdraft) {
this.overdraft = overdraft;
}
@Override
public void withdraw(double amount) {
if(getBalance() >= amount) {
// setBalance(getBalance() - amount);
super.withdraw(amount);
}else if(overdraft >= amount - getBalance()) {
overdraft -= (amount - getBalance());
// setBalance(0);
super.withdraw(getBalance());
}else {
System.out.println("超过可透支限额!");
}
}
}
package top.qaqaq.java.P279.exer;
public class CheckAccountTest {
public static void main(String[] args) {
CheckAccount acct = new CheckAccount(1122, 20000, 0.045, 5000);
acct.withdraw(5000);
System.out.println("您的账户余额:" + acct.getBalance());
System.out.println("您的可透支额:" + acct.getOverdraft());
acct.withdraw(18000);
System.out.println("您的账户余额:" + acct.getBalance());
System.out.println("您的可透支额:" + acct.getOverdraft());
acct.withdraw(3000);
System.out.println("您的账户余额:" + acct.getBalance());
System.out.println("您的可透支额:" + acct.getOverdraft());
}
}