java - 如何修复此代码以满足要求?
问题描述
我的代码
主要的:
public class MainProg {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
bank acc = new bank();
acc.acc1 = 1123.979;
acc.acc2 = 543.758;
System.out.println("account1 balance: " + "$" + acc.acc1);
System.out.println("account2 balance: " + "$" + acc.acc2);
System.out.println();
System.out.print("Enter amount for account1: ");
acc.WAmount1 = input.nextInt();;
System.out.println();
System.out.println("Subtracting " + acc.WA1 + " from account1 balance");
acc.debit();
System.out.println();
System.out.print("Enter amount for account2: ");
acc.WAmount2 = input.nextInt();
System.out.println();
System.out.println("Subtracting " + acc.WA2 + " from account2 balance");
acc.Debit();
}
}
我测试了代码,它工作得很好。问题出在代码上,我认为指令说我只能在Account
类中提供 1 个方法,即wdraw。
解决方案
一个 Account 类应该只包含一个金额字段。如果您有多个帐户,您将创建同一类的新实例,因此每个实例都保存一个帐户和一个帐户的信息。
提款方法应以提款金额为参数,因为提款金额不是账户的固有部分,而是与一次提款操作相关的临时值
所以像
public class Account {
double amount;
public void withdraw(double withdrawal){
if (amount - withdrawal< 0){
System.out.println("the debit amount exceeded the account balance");
} else {
amount-=withdrawal;
}
System.out.println("account balance: $" + amount);
}
}
如果可能(足够的资金),不要忘记通过提款来减少金额。
然后您可以实例化多个帐户:
Account account1=new Account();
// set amount and do withdrawals on account1
Account account2=new Account();
// set amount and do withdrawals on account2
推荐阅读
- c++ - 为什么 GLFW 在释放键后会调用键回调函数几秒钟?
- python - 我的 python 打印 trie 函数无法打印 - RecursionError:比较超出最大递归深度
- python - 使用 Python 写入 Excel 中的精确单元格
- azure - 无法解析请求 - MissingJsonReferenceId:使用 PowerShell Az 命令创建 NIC 时出错
- c++ - 从返回抽象类的函数返回 NULL
- python - 位于 MDI 区域中心的 PyQt 用户徽标
- javascript - 将 Google 地方信息搜索限制在坐标或地点周围特定边界内的地方
- javascript - 如何检查 React JS 应用中使用的第三方库的漏洞?
- python - 此站点无法提供安全连接 (heroku)
- javascript - 如何使用 Sinon.js 对具有函数的类进行存根