首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中打印对象的二维数组?

在Java中打印对象的二维数组?
EN

Stack Overflow用户
提问于 2018-09-23 05:09:12
回答 3查看 190关注 0票数 -1

我开始了一个简单的项目,用户在电脑上玩一个版本的战舰。现在,我想简单地打印出游戏板。但是,在将线路板初始化为由网格单元组成的对象的2D数组后,我遇到了一个错误。不像我在类中定义的打印单元格类型,代码只是简单地打印一个“null”的网格。

代码语言:javascript
复制
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;
    }

}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-09-23 05:14:59

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

要做到这一点,在你的循环中:

代码语言:javascript
复制
gameBoard[x][y] = new grid();
票数 2
EN

Stack Overflow用户

发布于 2018-09-23 05:16:18

你必须初始化你的grid

代码语言:javascript
复制
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("");
}
票数 0
EN

Stack Overflow用户

发布于 2018-09-23 05:16:31

这是因为你在初始化之后忘记了初始化2d网格数组对象。添加下面这行代码:

代码语言:javascript
复制
for (int i = 0; i < 9; i++)
    for (int j = 0; j < 9; j++)
        gameboard[i][j] = new grid();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52460893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档