为什么我不能为2D数组赋值?

时间:2018-05-04 03:44:27

标签: java arrays syntax

请参阅下图:

enter image description here

如何修改语法以便能够为数组中的特定单元格指定特定值?

2 个答案:

答案 0 :(得分:3)

除非在初始化块或构造函数中写入值,否则不能在类体中指定值。所以在下面提到的块中写入或在构造函数中赋值。

public class Maze{

    private int maze[][] = new int[5][5];

    //Changing the value using initializer block
    {
        maze[1][1] = 1;
    }

    //Changing the value using constructor
    public Maze(){
        maze[1][1]=5;
    }

    public int[][] getMaze() {
        return maze;
    }

    public void setMaze(int[][] maze) {
        this.maze= maze;
    }

    public static void main(String args[]) {

        Maze maze = new Maze();
        int maze[][] = maze.getMaze();
        //Changing the value after creating object
        maze[1][2] = 5;
    }
}

答案 1 :(得分:1)

分配值的一种简单方法是使用Maze类编写自定义方法并在main方法中使用它。例如:

private void updateMaze(int val, int i, int j) {
   maze[i][j] = val;
}

根据用例,可以使用不同的访问修饰符。