Java数组元素中的NULL指针异常



这是一个家庭作业问题,当我运行测试仪时,它给了我无效的指针异常。错误似乎在我的行中

balance[i]=InitialBalance; 

 

public class Bank
{
    private BankAccount[] accounts;
    private double [] balance;
    int NumbersOfBankAccount;
    double InitialBalance;
    public Bank (int x, double y )
    {
        NumbersOfBankAccount = x;
        InitialBalance = y;
    }

    /**
     *     This method will get balance of specified bank account.
     */
    public double getBalance(int index)
    {
        for(int i = 0; i <NumbersOfBankAccount; i++)
        {
            balance[i]=InitialBalance; 
        }
        System.out.println(balance);
        return balance[index]; 
    }
}

balanceaccounts永远不会初始化。

您在构造函数中缺少这样的东西:

balance = new double[NumbersOfBankAccount];
accounts = new BankAccount[NumbersOfBankAccount];

balance未初始化。

private double [] balance;

这是一个修复:

public Bank (int x, double y )
{
    NumbersOfBankAccount = x;
    balance = new double[NumbersOfBankAccount];
    accounts = new BankAccount[NumbersOfBankAccount];
    InitialBalance = y;
}

另外, NumbersOfBankAccount是一个长名,繁琐打字。您应该将其更改为numAccounts或类似的东西。

和另一件事:按照惯例,变量名称通常以小写字母开头。(InitialBalance应为initialBalance

dint初始化余额;数组并尝试访问其索引。

您必须像这样发起您的数组:

private double [] balance = new double[sizeofyour array] ;

您必须先初始化数组'余额':

balance = new double[ NumbersOfBankAccount ];

您需要确保您的数字至少与余额数组一样大。您记得初始化数组吗?也看起来不像您正在使用帐户数组。

另外,请查看您的掌握方法的评论。我不认为它在做您想做的事情。看起来您想使用传递的索引来获取帐户数组指定的帐户的余额。还是您要进行测试循环(可以)?

所以回顾:

  1. 确保您的数组是初始化的
  2. 确保您从正确的数组中获取数据

最新更新