定义一个基类 Acount 表示所有的账户。以此为基础派生出活期账户类(Saving)、定期帐户类(FixSaving)、信用卡帐户类(Checking)。每种帐户均提供存(deposit)和取(withdrawal)两种方法。根据下面要求设计相应的类,并提供测试主程序。
(1)信用卡是储蓄类的一种,假设它可以在 5000 元范围内透支,它有一个用户密码,取款时,必须验证密码。定义一个信用卡类(从 Acount 帐户类中继承),然后实现取款和存款业务。
(2)定期储蓄是储蓄的一种,假定定期分为一年期、三年期、五年期,利率分别为 5% , 8% 和 10% 。用户在办理定期存款帐户时,必须确定其定期时段,中途不再在同一帐号上办理存款业务。取款是一次性完成,若提前取款,则全部金额的利息按活期利率 1% 计算。
(3)活期储蓄在整个存续期内可自由存取,只要余额不为 0 ,账户不会被销户。
注:1、父类Acount中要包含 帐户的姓名、密码和帐户余额这三个成员变量。
2、用继承和多态的方法实现。
3、书写程序时请在各个方法和成员变量后面注释出它的意义和作用,且尽量不要用太深奥的JAVA语法,我是初学者。
谢谢。
不好意思,时间有限,帮你写了父类acount 和 信用卡类 Checking,其他派生类只是成员方法有所区别。大同小异。
写的不好,仅供参考:
class Acount{
private String username; //
private String password; // 都是私有属性,设置为private
private float money=0f; //
public String getUsername() { //getter和setter 对属性的读取操作
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public float getMoney() {
return money;
}
public void setMoney(float money) {
this.money = money;
}
public void withdrawal(float withdrawal,String password){ //取钱操作
if(this.password==password){
if(withdrawal>money){
System.out.print("账户余额不足,不可支取!\n 余额为:"+money);
}else{
System.out.print("支取了现金:"+withdrawal);
this.money=this.money-withdrawal;
}
}
}
public void deposit(float deposit){ //存钱操作
System.out.print("存入 了:"+deposit+"\n 目前余额为:"+(money+deposit));
this.money=this.money+deposit;
}
}
class Checking extends Acount{
private String username;
private String passowrd;
private float money=0f;
private String status;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassowrd() {
return passowrd;
}
public void setPassowrd(String passowrd) {
this.passowrd = passowrd;
}
public float getMoney() {
return money;
}
public void setMoney(float money) {
this.money = money;
}
public void checkStatus(){
if(this.money<0){
System.out.print("信用卡已透支 \n 透支了"+(""+this.money).substring(1)); //(""+this.money).substring(1) 不要负号
}else{
System.out.print("信用卡未透支 \n 余额为:"+this.money);
}
}
public void withdrawal(float withdrawal,String password){ //覆盖了父类的 withdrawal方法
if(this.passowrd==password){
if(this.money==-5000||this.money>-5000){
System.out.print("信用卡严重透支,不可以再取!请及时还款。");
}else{
System.out.println("支取了现金:"+withdrawal);
this.money=this.money-withdrawal;
System.out.println("余额为:"+this.money);
}
}
}
}
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息