创建 OverdraftException 类
1. 建立一个共有类 OverdraftException.
这个类扩展RuntimeException 类。
2. 添加一个 double 类型的私有属性 deficit.增加一个共有访问方法
getDeficit
3. 添加一个有两个参数的共有构造器。deficit 参数初始化 deficit 属性
修改 Account
类
4. 重写 withdraw 方法使它不返回值(即 void).
5.
修改代码抛出新异常,指明“资金不足”以及不足数额(当前余额扣除请求的数额)
修改 CheckingAccount 类
6. 重写 withdraw
方法使它不返回值(即 void)
7.
修改代码使其在需要时抛出异常。两种情况要处理:第一是存在没有透支保护的赤
字,对这个异常使用“没有透支保护”信息。第二是
overdraftProtection 数
额不足以弥补赤字:对这个异常可使用 ”透支保护资金不足”信息
输入
输入描述:输入姓名,余额初值,利率,支票余额,透支额度,取款额,存款额;名字,支票余额,取款额,存款额
输出
输出描述:输出个各账户支票账户交易记录和余额
样例输入
赵先生 500 0.05 200 500 470 100
李女士 200 500 100
样例输出
客户 [赵先生] 支票账户余额: 200.0 和透支额度500.0
取款 : 470.0
存款 : 100.0
客户 [赵先生] 支票账户余额: 100.0
客户 [李女士] 支票账户余额: 200.0
取款: 500.0
异常: 没有透支保护 赤字: 300.0
客户 [李女士] 支票账户余额: 200.0
主程序如下:
public class Main {
public static void main(String[] args)
{
Bank7 bank =
Bank7.getBank();
Customer7
customer;
Account7
account;
java.util.Scanner s =
new java.util.Scanner(System.in);
String name=s.next();
double
balance=s.nextDouble();
double
interestRate=s.nextDouble();
double ch_balance=s.nextDouble();
double protectedBy=s.nextDouble();
double withdraw=s.nextDouble();
double deposit=s.nextDouble();
bank.addCustomer( name);
customer = bank.getCustomer(0);
customer.addAccount(new SavingAccount7(balance,
interestRate));
customer.addAccount(new CheckingAccount7(ch_balance,
protectedBy));
String
name1=s.next();
double
ch_balance1=s.nextDouble();
bank.addCustomer(name1);
customer
= bank.getCustomer(1);
double
withdraw1=s.nextDouble();
double
deposit1=s.nextDouble();
customer.addAccount(new CheckingAccount7(ch_balance1));
customer = bank.getCustomer(0);
account = customer.getAccount(1);
System.out.println("客户 [" +
customer.getName()
+
"]"
+ " 支票账户余额:
"
+
account.getBalance()
+ "
和透支额度"+protectedBy);
try
{
System.out.println("取款 :
"+withdraw);
account.withdraw(withdraw);
System.out.println("存款 : "+deposit);
account.deposit(deposit);
} catch (OverdraftException7 e1)
{
System.out.println("异常: " +
e1.getMessage()
+ " 赤字: " +
e1.getDeficit());
} finally
{
System.out.println("客户 [" +
customer.getName()
+
"]"
+ " 支票账户余额:
"
+
account.getBalance());
}
System.out.println();
customer =
bank.getCustomer(1);
account =
customer.getAccount(0);
System.out.println("客户 [" + customer.getName()
+ "]"
+ "
支票账户余额: "
+
account.getBalance());
try
{
System.out.println("取款:
"+withdraw1);
account.withdraw(withdraw1);
System.out.println("存款 : "+deposit1);
account.deposit(deposit1);
} catch (OverdraftException7 e1)
{
System.out.println("异常: " +
e1.getMessage()
+ " 赤字: " +
e1.getDeficit());
} finally
{
System.out.println("客户 [" +
customer.getName()
+
"]"
+ " 支票账户余额:
"
+
account.getBalance());
}
}
}
相关分类