Java,空指针异常。将对象添加到数组时

Java,空指针异常。将对象添加到数组时,java,arrays,exception,nullpointerexception,null,Java,Arrays,Exception,Nullpointerexception,Null,我是java新手,我正在尝试将一个对象添加到一个对象数组中。 我有两门课,银行和账户。银行包含帐户对象数组 银行构造函数初始化帐户数组 public Bank (String bankName, int num) { nameOfBank = bankName; max = num; Account[] accounts = new Account[max]; count = 0; 这是我的addAccount方法 public

我是java新手,我正在尝试将一个对象添加到一个对象数组中。 我有两门课,银行和账户。银行包含帐户对象数组

银行构造函数初始化帐户数组

public Bank (String bankName, int num) {

        nameOfBank = bankName;
        max = num;
        Account[] accounts = new Account[max];
        count = 0;
这是我的addAccount方法

public boolean addAccount (Account acct) {
        if(acct == null) {
            return false;
        }

        accounts[count++] = acct;
        return true;
    }
这是我在main中添加帐户的方式

newBank.addAccount(test);
另外,我不允许使用java数组以外的任何东西。(无arrayList)


您已将
帐户
定义为构造函数的局部变量,而不是类级成员

public class Bank {
    Account[] accounts;
    int count;

    public Bank(String bankName, int num) {
        accounts = new Account[num];
        count = 0;
    }

    public boolean addAccount(Account acct) {
        // Do your work
    }
}

对不起,我有个人账户[]账户;作为一个variable@user2387963-不管您是否拥有它,根据构造函数中的代码,您正在声明并初始化一个同名的局部变量,而不是类级变量。哦,不需要帐户[]帐户谢谢,这就解决了它。@user2387963不。。。您仍然需要声明帐户[]帐户,但您需要在正确的位置声明它。最初,您将其声明为构造函数中的本地字段。一旦超出构造函数,该字段就超出了范围,您就不能再引用它了。如果在类中声明帐户(在任何方法之外),则该帐户对类中的所有方法都可用。
public class Bank {
    Account[] accounts;
    int count;

    public Bank(String bankName, int num) {
        accounts = new Account[num];
        count = 0;
    }

    public boolean addAccount(Account acct) {
        // Do your work
    }
}