package text5;
public class Account {
private int id;//账号
private double balance; //余额
private double annnuallterestRate;//年利率
public Account() {
}
public Account(int id, double balance, double annnuallterestRate) {
this.id = id;
this.balance = balance;
this.annnuallterestRate = annnuallterestRate;
}
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 getAnnnuallterestRate() {
return annnuallterestRate;
}
public void setAnnnuallterestRate(double annnuallterestRate) {
this.annnuallterestRate = annnuallterestRate;
}
//返回月利率
public double getMonthlyinterest(){
System.out.println("月利率为:"+ annnuallterestRate/12);
return annnuallterestRate/12;
}
//取款
public void withdraw(double amount){
if(amount >balance){
System.out.println("取款失败,余额不足");
System.out.println("现在余额为:"+balance);
}else{
System.out.println("成功取款 "+amount);
balance-=amount;
System.out.println("现在余额为:"+balance);
}
}
//存款
public void desposit(double amount){
if(amount<=0){
System.out.println("存款失败");
}else{
System.out.println("成功存款"+amount);
balance+=amount;
System.out.println("现在余额为:"+balance);
}
}
}
package text5;
public class CheckAccount extends Account{
double overdraft;//表示可透支的限额
public double getOverdraft() {
return overdraft;
}
public void setOverdraft(double overdraft) {
this.overdraft = overdraft;
}
public CheckAccount(double overdraft) {
this.overdraft = overdraft;
}
public CheckAccount(int id, double balance, double annnuallterestRate, double overdraft) {
super(id, balance, annnuallterestRate);
this.overdraft = overdraft;
}
public void withdraw(double amount){
if(amount<getBalance()){
// System.out.println("成功取款:"+amount);
// 错误 super.getBalance()-=amount;
// 写法一: super.setBalance(super.getBalance()-amount);
super.withdraw(amount);
// System.out.println("现在余额为:"+getBalance());
}
else if(amount>getBalance()){
getOverdraft();
if(getOverdraft()>amount-getBalance()){
// 错误 super.getBalance()==0;
//注意顺序
overdraft-=(amount-getBalance());
super.setBalance(0);
System.out.println("现在余额为0,已经开始透支");
System.out.println("可透支的余额为:"+getOverdraft());
}
else{
System.out.println("超过可透支的额度,支付失败");
}
}
else{
System.out.println("余额+透支金额<待支付金额,支付失败");
}
}
}
package text5;
public class CheckAccountText {
public static void main(String[] args) {
CheckAccount c=new CheckAccount(1122,20000,0.0045,5000);
c.getBalance();
System.out.println("————————");
c.withdraw(5000);
System.out.println("————————");
c.withdraw(18000);
System.out.println("————————");
c.withdraw(3000);
}
}