檔案:Account.java
package bank2; public abstract class Account { int balance; Account(int money) { balance = money; } public abstract int inquiry(); }
檔案:AccountException.java
package bank2; public class AccountException extends Exception { public String getMessage() // 覆寫 Throwable 的 toString() { return "金額不可以為負數"; } public void showMessage() { // 自定方法 System.out.println("例外發生:請從新輸入金額"); } }
檔案:DemandDepositAccount.java
package bank2; public class DemandDepositAccount extends Account { DemandDepositAccount(int money){ super(money); } public void deposit(int money) throws AccountException { if (money < 0) { throw new AccountException(); } else balance += money; } public void withdraw(int money) throws AccountException{ if (money < 0) throw new AccountException(); else balance -= money; } public int inquiry() { return balance; } }
檔案:FixedDepositAccount.java
package bank2; public class FixedDepositAccount extends Account { FixedDepositAccount(int money) { super(money); // TODO Auto-generated constructor stub } public FixedDepositAccount() { // TODO Auto-generated constructor stub super(50000); } @Override public int inquiry() { // TODO Auto-generated method stub return balance; } }
檔案:AccountTest.java
package bank2; public class AccountTest { public static void main(String[] args) { try{ DemandDepositAccount demandDepositAcc = new DemandDepositAccount(1000); demandDepositAcc.deposit(-100); demandDepositAcc.withdraw(300); System.out.println("活期賬戶餘額:" + demandDepositAcc.inquiry()); FixedDepositAccount fixedDepositAcc = new FixedDepositAccount(20000); System.out.println("定期賬戶餘額:" + fixedDepositAcc.inquiry()); } catch(AccountException e){ System.out.println(e.toString()); e.showMessage(); } } }執行結果
沒有留言:
張貼留言