Java 如何保持数组中的内容?

Java 如何保持数组中的内容?,java,Java,此类用于存储和处理游戏中的棋盘 静态类板 { 布尔[][]数组; 私有无效重置() { 数组=新布尔值[][] { {假,假,假}, {假,假,假}, {假,假,假} }; } 专用无效标记(整数行,整数列) { 数组[行][列]=真; } } 这里是主要的方法 public static void main(String args[]) { new Board().reset(); new Board().mark(0,0); } 当程序启动时,我用重置方法初始化电

此类用于存储和处理游戏中的棋盘

静态类板
{
布尔[][]数组;
私有无效重置()
{
数组=新布尔值[][]
{
{假,假,假},
{假,假,假},
{假,假,假}
};
}
专用无效标记(整数行,整数列)
{
数组[行][列]=真;
}
}
这里是主要的方法

public static void main(String args[])
{
    new Board().reset();
    new Board().mark(0,0);
}    
当程序启动时,我用重置方法初始化电路板。 然后,我用“mark”将其中一个布尔值从false改为true

我在
array[row][col]=true处得到一个空异常错误因为数组为空


如何编辑代码,使数组不会变为null,并且mark()可以正确地将值写入数组?

这是因为您正在使用
null
值初始化的
Board
的新实例中调用
mark
。必须重用同一实例才能调用这两种方法:

public static void main(String args[]) {
    Board board = new Board();
    board.reset();
    board.mark(0,0);
}

这是因为您正在使用
null
值初始化
array
Board
的新实例中调用
mark
。必须重用同一实例才能调用这两种方法:

public static void main(String args[]) {
    Board board = new Board();
    board.reset();
    board.mark(0,0);
}

不要创建
板的两个实例。创建一个实例并在同一个实例上调用两个方法

public static void main(String args[])
{
    Board board =  new Board();
    board.reset();
    board.mark(0,0);
}

当您为每个方法调用创建一个新的
Board
实例时,将对其
数组
成员未初始化的实例执行
标记
方法,从而导致
NullPointerException
不创建
Board
的两个实例。创建一个实例并在同一个实例上调用两个方法

public static void main(String args[])
{
    Board board =  new Board();
    board.reset();
    board.mark(0,0);
}

当您为每个方法调用创建一个新的
Board
实例时,将对其
数组
成员未初始化的实例执行
标记
方法,从而导致
NullPointerException

通过调用构造函数
新建Board()

每一次。只创建一个对象,然后重用它。似乎是
你的意图在这里

Board obj = new Board();
obj.reset();
obj.mark(0,0);

不要通过调用构造函数来创建新对象
newboard()

每一次。只创建一个对象,然后重用它。似乎是
你的意图在这里

Board obj = new Board();
obj.reset();
obj.mark(0,0);