java - 方法是将我的变量重新初始化为 0
问题描述
我目前有一个具有存款方法的帐户类。每当我调用此方法时,它会将总金额重新初始化为零,然后将添加的金额添加到其中,因此总金额始终设置为添加的金额。
账户类:
public class Accounts {
double totalAmount;
public Accounts(){
totalAmount = this.totalAmount;
}
public double Deposit(double amountAdded) {
totalAmount+=amountAdded;
return totalAmount;
}
在 main 中调用方法:
System.out.println("Please enter the customer's account number you want to deposit money for");
int accountNumber = input.nextInt();
while(accountNumber == 0 || accountNumber < 0){
System.out.println("Please enter an account number greater than 0");
accountNumber = input.nextInt();
}
try{
for(int i = 0; i < index +1 ; i++){
if(cust[i].accountNumber1 == accountNumber){
System.out.println("Please enter the amount you want to deposit");
double amount = input.nextDouble();
acc[i] = new Accounts();
double a = acc[i].Deposit(amount);
System.out.println(a);
break;
}
}
假设 x 人的当前 totalAmount 为 100。当调用方法 Deposit 加上额外的 300 时,该方法将返回 100 而不是预期的 400。
解决方案
您创建一个新帐户,而不是使用数组中的帐户。
acc[i] = new Accounts();
这会覆盖数组中的账户,新创建的账户余额为 0。
推荐阅读
- tensorflow - Keras 没有学到任何东西
- python - 我将不胜感激有关使用 Python 解析复杂的制表符分隔的文本文件的评论
- python - 有没有办法在内部存储所有日志记录历史并仅在必要时导出到文件?
- import - 是否可以使用单个代码导入 2 个文件?或者如何从一个目录中导入所有文件?
- php - 无法自定义 inline_keyboard
- typescript - 如何修复“tsc:找不到命令”
- verilog - 通过 get_type_name 将 UVM 索引到数组中
- node.js - 写入文件而不回调Node js
- docker - docker-compose 为一个服务运行多个命令
- javascript - New Date() 将 yyyy-mm-dd 中传递的日期转换为正确的日期减去一天