java - 方法是将我的变量重新初始化为 0

标签 java

我目前有一个具有存款方法的帐户类。 每当我调用此方法时,它都会将总金额重新初始化为零,然后添加添加的金额,因此总金额始终设置为添加的金额。

帐户类别:

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 人的当前总金额为 100。当调用方法 Deposit 并额外添加 300 时,该方法将返回 100,而不是预期的 400。

最佳答案

您创建一个新帐户,而不是使用数组中的帐户。

acc[i] = new Accounts();

这会覆盖数组中的帐户,并且新创建的帐户的余额为 0。

关于java - 方法是将我的变量重新初始化为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53621797/

相关文章:

java - 为什么我在 io.datafx 中遇到 java.lang.NullPointerException?

java - ElasticSearch java列出字段的唯一值

java - 从 View 返回时,Session 属性返回 null

java - java中如何从图像中提取文本?

java - Google Drive API 多个单独的 get 请求检索所有父级很慢,有更好的方法吗?

java - 执行程序时打印源代码流

java - 将值加载到 csv 文件时如何修改默认分隔符

java - 添加枚举值?

java - 在 Liferay 中添加新的网页内容版本

java - 如何让 Sonar 忽略 codeCoverage 指标的某些类?