Java 无法引用填充的二维数组
我正试图完成这个魔方项目,但是当填充这个方块时,它引用的是空的实例变量,而不是定义了大小的实例变量,我似乎无法修复它 第22行显示空错误 有人能帮我吗Java 无法引用填充的二维数组,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我正试图完成这个魔方项目,但是当填充这个方块时,它引用的是空的实例变量,而不是定义了大小的实例变量,我似乎无法修复它 第22行显示空错误 有人能帮我吗 public class MagicSquare { private int[][] magicSquare; public MagicSquare(int size){ int[][] magicSquare = new int[size][size]; fillSquare(size);
public class MagicSquare {
private int[][] magicSquare;
public MagicSquare(int size){
int[][] magicSquare = new int[size][size];
fillSquare(size);
}
private void fillSquare(int size){
int row = size - 1;
int col = size / 2;
magicSquare[row][col] = 1;
for (int i = 2;i < size * size;++i){
if (magicSquare[(1 + row) % size][(col + 1) % size] == 0){
row = (1 + row) % size;
col = (1 + col) % size;
}
else {
row = ( row - 1 + size) % size;
}
magicSquare[row][col] = i;
}
}
public void toString(int size){
for (int i = 0; i < size;++i){
for (int j = 0; j < size;++j){
System.out.println(magicSquare[i][j]);
}
}
}
}
公共级魔法广场{
私人int[][]magicSquare;
公共MagicSquare(整数大小){
int[]magicSquare=新的int[size][size];
正方形(大小);
}
专用空白填充正方形(整数大小){
int行=大小-1;
int col=大小/2;
magicSquare[行][列]=1;
对于(int i=2;i
不要在int[]中初始化magicSquare
magicSquare=newint[size][size]代码>
它超越了全球magicSquare实例
您的代码应该如下所示:
public class MagicSquare {
private int[][] magicSquare;
public MagicSquare(int size){
magicSquare = new int[size][size];
fillSquare(size);
}
private void fillSquare(int size){
int row = size - 1;
int col = size / 2;
magicSquare[row][col] = 1;
for (int i = 2;i < size * size;++i){
if (magicSquare[(1 + row) % size][(col + 1) % size] == 0){
row = (1 + row) % size;
col = (1 + col) % size;
}
else {
row = ( row - 1 + size) % size;
}
magicSquare[row][col] = i;
}
}
public void toString(int size){
for (int i = 0; i < size;++i){
for (int j = 0; j < size;++j){
System.out.println(magicSquare[i][j]);
}
}
}
}
公共类MagicSquare{
私人int[][]magicSquare;
公共MagicSquare(整数大小){
magicSquare=新整数[size][size];
正方形(大小);
}
专用空白填充正方形(整数大小){
int行=大小-1;
int col=大小/2;
magicSquare[行][列]=1;
对于(int i=2;i
int[]magicSquare=新的int[size][size]代码>应该是magicSquare=newint[size][size]代码>