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);