1、使用继承创建一个父类Account(帐户),该父类具有两个名为SavingsAccount(储蓄帐户)和CheckingAccount(信用卡帐户)的子类。
在Account类中使用参数化构造函数初始化两个字段:name(姓名)和balance(余额)。声明方法以返回这些字段中存储的值。字段balance应该根据发生的交易而更新。
SavingsAccount类应该具有附加字段interestRate(利率)。CheckingAccount类具有附加字段overDraft(可透支金额)。SavingsAccount类和CheckingAccount类应该具有两个参数化构造函数,一个用于接收两个参数(以初始化父类的name和balance字段),另一个用于接受3个参数以初始化所有3个成员。
提款时CheckingAccount类应该执行以下检查:
1) 如果要提取的amount小于balance,那么交易继续进行。
2) 如果amount大于balance且大于balance和overDraft金额的和,那么交易应该被取消。
3) 如果amount大于balance且小于balance和overDraft金额的和,那么balance的值应该变为0,overDraft金额的值应该足够支付balance和amount之间的差。
编写测试类,显示用户John,初始余额为500.0,利率为0.04,存款200.0,取款1000.0的过程的相关信息,显示用户Stephen,初始余额为200.0,存款200.0,可透支金额为300.0,取款500.0的过程的相关信息。class Account {
String name;
double balance;
Account(String name, double balance) {
this name = name;
this balance = balance;
}
public String getName() {return name;}
public double getBalance() {return balance;}
}class SavingsAccount extends Account {
double interestRate;
SavingsAccount(double interestRate) {
this.interestRate = interestRate;
}
}class CheckingAccount extends Account {}
在Account类中使用参数化构造函数初始化两个字段:name(姓名)和balance(余额)。声明方法以返回这些字段中存储的值。字段balance应该根据发生的交易而更新。
SavingsAccount类应该具有附加字段interestRate(利率)。CheckingAccount类具有附加字段overDraft(可透支金额)。SavingsAccount类和CheckingAccount类应该具有两个参数化构造函数,一个用于接收两个参数(以初始化父类的name和balance字段),另一个用于接受3个参数以初始化所有3个成员。
提款时CheckingAccount类应该执行以下检查:
1) 如果要提取的amount小于balance,那么交易继续进行。
2) 如果amount大于balance且大于balance和overDraft金额的和,那么交易应该被取消。
3) 如果amount大于balance且小于balance和overDraft金额的和,那么balance的值应该变为0,overDraft金额的值应该足够支付balance和amount之间的差。
编写测试类,显示用户John,初始余额为500.0,利率为0.04,存款200.0,取款1000.0的过程的相关信息,显示用户Stephen,初始余额为200.0,存款200.0,可透支金额为300.0,取款500.0的过程的相关信息。class Account {
String name;
double balance;
Account(String name, double balance) {
this name = name;
this balance = balance;
}
public String getName() {return name;}
public double getBalance() {return balance;}
}class SavingsAccount extends Account {
double interestRate;
SavingsAccount(double interestRate) {
this.interestRate = interestRate;
}
}class CheckingAccount extends Account {}
String name;
double balance;
Account(String name,double balance){
this.name = name;
this.balance = balance;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public double getBalance() {
return balance;
} public void setBalance(double balance) {
this.balance = balance;
}
}package com.account;public class SavingsAccount extends Account{ double interestRate;
SavingsAccount(String name, double balance) {
super(name, balance);
}
SavingsAccount(String name, double balance, double interestRate){
super(name, balance);
this.interestRate = interestRate;
}
public void putMoney(double mount){
super.balance += mount;
System.out.println(super.name + "'s account : balance now is : " + super.balance);
}}
package com.account;public class CheckingAccount extends Account{ double overDraft;
CheckingAccount(String name, double balance) {
super(name, balance);
}
CheckingAccount(String name, double balance, double overDraft) {
super(name, balance);
this.overDraft = overDraft;
}
public void getMoney(double amount){
if(amount < this.balance){
System.out.println(super.name + "'s account : Can get money,continue...");
super.balance = super.balance - amount;
}else if(amount > this.balance && amount > (this.balance + this.overDraft)){
System.out.println(super.name + "'s account : Money is not enough!!!");
}else if(amount > this.balance && amount <= (this.balance + this.overDraft)){
super.balance = 0;
System.out.println(super.name + "'s account : overDraft is enough,can get money...");
}
}
}package com.account;public class Test { public static void main(String[] args) {
Account a1 = new Account("John",500.0);
SavingsAccount sa1 = new SavingsAccount(a1.getName(),a1.getBalance());
sa1.putMoney(200.0);
CheckingAccount ca1 = new CheckingAccount(a1.getName(),a1.getBalance(),300.0);
ca1.getMoney(1000.0);
Account a2 = new Account("Stephen",200.0);
SavingsAccount sa2 = new SavingsAccount(a2.getName(),a2.getBalance());
sa2.putMoney(200.0);
CheckingAccount ca2 = new CheckingAccount(a2.getName(),a2.getBalance(),300.0);
ca2.getMoney(500);
}}