用Java打印2D对象数组?

时间:2018-09-22 21:09:12

标签: java

我正在启动一个简单的项目,在该项目中,用户对计算机玩《战舰》版本。我现在想简单地打印游戏板。但是,将板初始化为由网格单元组成的2D对象阵列后,遇到了错误。该代码不是打印我在该类中定义的单元格类型,而是仅打印“ null”的网格。非常感谢这里的任何帮助。

public class main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        grid[][] gameBoard = new grid[9][9];

        for (int x = 0; x < 9; x++) {
            for (int y = 0; y < 9; y++) {
                System.out.print(gameBoard[x][y] + " ");
            }
            System.out.println("");
        }

    }

}

public class grid {

    public String type;
    public String owner;
    public boolean positionCalled;

    public grid() {
        type = "_";
        owner = "";
        positionCalled = false;
    }

    public String toString() {
        return type;
    }

}

3 个答案:

答案 0 :(得分:2)

您只创建了数组,没有创建其中的单个单元格。

要这样做,请在您的循环中进行

gameBoard[x][y] = new grid();

答案 1 :(得分:0)

您必须初始化grid

for (int x = 0; x < 9; x++) {
    for (int y = 0; y < 9; y++) {
        gameBoard[x][y]=new grid();//initialize the grid
        System.out.print(gameBoard[x][y] + " ");
    }
    System.out.println("");
}

答案 2 :(得分:0)

那是因为您在初始化后忘记初始化2d网格数组对象。 添加以下代码行:

for (int i = 0; i < 9; i++)
    for (int j = 0; j < 9; j++)
        gameboard[i][j] = new grid();