java - 将信用卡和借记卡类链接到银行账户类
问题描述
我正在学习 Java,我的一项任务是创建 Credit and Debit Cards 类,以便您可以在创建新个人帐户时创建与新个人帐户相关联的新卡。信用卡应该存储购买,当用户付款(全部或部分)时,从账户中减去金额(加上 3% 的利息)。借记卡立即从账户中扣除购买金额。
我已经编写了所有内容并使其工作,但仅作为 Account 类中的嵌套类。有没有办法将账户、信用卡和借记卡作为三个独立的类,并使得每次创建新账户时,您都可以选择创建链接到每个新个人账户的卡?
免责声明:我正在修剪一些代码,因为它都是西班牙语,所以我不必全部翻译(主要是布尔值来检查正数和类似的东西),但代码仍然有效。提前非常感谢!
package accounts;
public class Account {
protected static double balance;
protected static String accountNumber;
public Account() {
}
public Account(String accountNumber, double balance) {
Account.accountNumber = accountNumber;
Account.balance = balance;
}
public double getBalance() {
return balance;
}
public String getAccountNumber() {
return accountNumber;
}
public void deposit(double depositAmount) {
Account.balance += depositAmount;
}
public void extraction(double extractionAmount) {
Account.balance -= extractionAmount;
}
public void showBalance() {
System.out.println("Your current balance is: " + getBalance());
}
protected static class DebitCard {
private String userName;
private int cardNumber;
public DebitCard () {
}
public DebitCard (String userName, int cardNumber) {
this.userName = userName;
this.cardNumber = cardNumber;
}
public String getUserName() {
return userName;
}
public int getCardNumber() {
return cardNumber;
}
public void debitPurchase(double purchaseAmount) {
Account.balance -= purchaseAmount;
}
}
protected static class CreditCard {
private String userName;
private int cardNumber;
private double creditCardDebt;
private double limit;
public CreditCard () {
}
public CreditCard(String userName, int cardNumber, double limit) {
this.userName = userName;
this.cardNumber = cardNumber;
this.limit = limit;
}
public String getUserName() {
return userName;
}
public int getCardNumber() {
return cardNumber;
}
public double getLimit() {
return limit;
}
public double getCrediCardDebt() {
return creditCardDebt;
}
public void creditCardPurchase(double purchaseAmount) {
if (this.creditCardDebt + purchaseAmount > this.limit) {
Error notEnoughLimit = new Error("There's not enough limit to make this purchase");
throw notEnoughLimit ;
} else {
this.creditCardDebt += purchaseAmount + (purchaseAmount * 0.03);
this.limit -= purchaseAmount;
this.creditCardDebt += purchaseAmount + (purchaseAmount* 0.03);
this.limit -= purchaseAmount;
}
}
public void payCard(double payAmount) {
Account.balance -= payAmount;
this.creditCardDebt = this.creditCardDebt - payAmount;
}
}
}
解决方案
是的,有可能。但在你这样做之前,你应该解决由声明balance
和accountNumber
作为static
变量引起的问题。通过这样做,您使每个Account
实例共享一个帐号和一个余额。
这些变量也应该private
使其他类无法直接访问或更改它们。
一旦你解决了这个问题,你应该更改构造函数Credit
并将Debit
其作为参数Account
。他们将其存储在一个私有字段中,然后Account
通过对Account
对象的操作执行从...中添加和移除资金的操作。
推荐阅读
- html - 居中文本在全屏浏览器中有效,但在调整大小或在手机视图中时,它会扰乱外观,如小提琴所示
- python - 将一个 stl 组装成一个大的 stl 文件
- git - 你如何在 Git 中合并两个文件?
- php - Laravel CPanel - 未显示公共文件夹的新图像
- reactjs - react-datepicker 和 react-hook-forms:需要不工作
- php - Laravel 数据库 Eloquent 左连接表
- swiftui - 按最新和最旧对数据进行排序
- php - 如何检查数据库中的图像名称并在 Laravel Blade 模板中为 NULL 时返回静态图像?
- django - 我的 Django 应用程序应该有多少个单独的应用程序
- mysql - root@% 如何授予用户选择 information_schema.Tables 中的所有条目