//創建基接口BankAccount,包含 存款方法playIn(),取款方法withdraw(),查詢余額方法getBalance()。 interface BankAccount{ void playIn(double amount); boolean withDraw(double amount); double getBalance(); } //創建接口ITransferBankAccount(繼承基接口BankAccount),包含轉賬方法transferTo(). interface ITransferBankAccount extends BankAccount{ boolean transferTo(BankAccount destunation,double amount); } /*創建類CurrentAccount(實現基接口ITransferBankAccount), 類中包含私有數據成員:名字name和余額balance, 並實現存款方法:playIn(),取款方法:withdraw(), 查詢余額getBanlance(),銀行轉賬方法transferTo(), 重載方法toString()方法,該方法返回銀行當前賬戶中的余額。*/ class CurrentAccount implements ITransferBankAccount{ private String name; private double balance; public CurrentAccount(String name) { super(); this.name = name; } public void playIn(double amount){ this.balance+=amount; } public boolean withDraw(double amount){ if(this.balance>=amount){ this.balance-=amount; return true; } System.out.println("余額不足,取款失敗"); return false; } public double getBalance(){ return balance; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean transferTo(BankAccount destination, double amount) {//銀行轉賬 boolean result; if((result=withDraw(amount))==true) { destination.playIn(amount); } return result; } @Override public String toString() { return "CurrentAccount [name=" + name + ", balance=" + balance + "]"; } } public class TestBankDemo { //主函數中:擁有兩個賬戶:分別為曹操和劉備, //(1):曹操存款1000,劉備存款2000。 //(2):劉備向曹操轉賬1元錢,返回兩個賬戶當前的余額。 public static void main(String[] args) { CurrentAccount bankCount1=new CurrentAccount("曹操"); CurrentAccount bankCount2=new CurrentAccount("劉備"); bankCount1.playIn(1000); bankCount2.playIn(2000); bankCount2.transferTo(bankCount1,1); System.out.println(bankCount1.toString()); System.out.println(bankCount2.toString()); } }
