永发信息网

JAVA 编程创建Account 类模拟银行账户。

答案:1  悬赏:0  手机版
解决时间 2021-11-29 16:44
  • 提问者网友:姑娘长的好罪过
  • 2021-11-28 17:50
JAVA 编程创建Account 类模拟银行账户。
最佳答案
  • 五星知识达人网友:一把行者刀
  • 2021-11-28 18:33
我帮你一共写了四个类,一个账户Account类,两个账户类的子类(信用卡账户CreditCardAccount类和借记卡DebitCardAccount类),另外再加上一个演示透支效果测试Test类。 代码贴在下面:

public abstract class Account { protected String accountNumber; // 账号
protected double overage; // 余额
protected double annualInterestRate; // 年利率


public Account(String accountNumber, double overage, double annualInterestRate) {
super();
// 设定账号。
this.accountNumber = accountNumber;
// 设定初始余额,至少为零。
this.overage = overage >= 0 ? overage : 0;
// 设定年利率,至少为零。
this.annualInterestRate = annualInterestRate >= 0 ? annualInterestRate : 0;
}


public String getAccountNumber() {
return this.accountNumber;
}


public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
public double getOverage() {
return this.overage;
}
public boolean depositMoney(double money) {
// 如果金额小于零,则不能存款
if (money <= 0)
return false;
// 否则将相应的金额累加到账户余额中
this.overage += money;
return true;
}


public boolean drawMoney(double money) {
// 如果账户余额不足,则不能取款
if (this.overage < money)
return false;
// 否则从账户余额中扣除相应的金额
this.overage -= money;
return true;
}
public double getAnnualInterestRate() {
return this.annualInterestRate;
}
public void setAnnualInterestRate(double annualInterestRate) {
this.annualInterestRate = annualInterestRate;
}

}
--------------------------------------------------

public class DebitCardAccount extends Account {
public DebitCardAccount(String accountNumber, double overage,
double annualInterestRate) {
super(accountNumber, overage, annualInterestRate);
}}
-------------------------------------------------

public class CreditCardAccount extends Account { private double overdraftLimit; // 透支限度


public CreditCardAccount(String accountNumber, double overage,
double annualInterestRate, double overdraftLimit) {
super(accountNumber, overage, annualInterestRate);
this.overdraftLimit = overdraftLimit;
}
public double getOverdraftLimit() {
return this.overdraftLimit;
}
public void setOverdraftLimit(double overdraftLimit) {
// 透支限度必须为零和正数,否则为零。
this.overdraftLimit = overdraftLimit >= 0 ? overdraftLimit : 0;
}
public CreditCardAccount(String accountNumber, double overage,
double annualInterestRate) {
super(accountNumber, overage, annualInterestRate);
}
@Override
public boolean drawMoney(double money) {
// 如果账户余额 + 透支限度的总金额仍不足,则不能取款
if (this.overage + this.overdraftLimit < money)
return false;
// 否则从账户余额中扣除相应的金额
this.overage -= money;
return true;
}}
------------------------------------------

public class Test {
public static void main(String[] args) {

// 创建一个不能透支的借记卡账户。
System.out.println("------------ 借记卡账户 ------------");
DebitCardAccount debitCardAccount = new DebitCardAccount("CHK20100117001", 100, 0.02);
// 初始余额有100元,调用并打印取90元和取120元的结果。
System.out.println("取90元的结果:" + debitCardAccount.drawMoney(90));
// 重新存入90元
debitCardAccount.depositMoney(90);
System.out.println("取120元的结果:" + debitCardAccount.drawMoney(120));

// 创建一个可以透支的信用卡账户。
System.out.println("------------ 信用卡账户 ------------");
CreditCardAccount crebitCardAccount = new CreditCardAccount("CHK20100117002", 100, 0.03, 50);
// 初始余额有100元,并且透支限度为50元,调用并打印取90元、取120元和取160元的结果。
System.out.println("取90元的结果:" + crebitCardAccount.drawMoney(90));
// 重新存入90元
crebitCardAccount.depositMoney(90);
System.out.println("取120元的结果:" + crebitCardAccount.drawMoney(120));
// 重新存入120元
crebitCardAccount.depositMoney(120);
System.out.println("取160元的结果:" + crebitCardAccount.drawMoney(160));

}

}
-------------------------------------- 在我机器上的测试打印结果为: ------------ 借记卡账户 ------------
取90元的结果:true
取120元的结果:false
------------ 信用卡账户 ------------
取90元的结果:true
取120元的结果:true
取160元的结果:false ----------------------------------------- 这个题目只是简单考查了下封装、继承、多态三大面向对象特性,我提供的代码仅作参考。 如果你懒得复制,想要程序源代码文件或有不明白的地方,可以发邮件到我QQ邮箱,我再回给你。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯