为了账号安全,请及时绑定邮箱和手机立即绑定

用Java打印对象的二维数组?

用Java打印对象的二维数组?

Go
米脂 2021-10-06 09:44:39
我正在开始一个简单的项目,用户在其中对着计算机播放一个版本的战舰。我现在想简单地打印出游戏板。但是,在将板初始化为由网格单元组成的二维对象数组后,我遇到了错误。代码没有打印我在类中定义的单元格类型,而是简单地打印了一个“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 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

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

为此,在您的循环中:

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


查看完整回答
反对 回复 2021-10-06
?
月关宝盒

TA贡献1772条经验 获得超5个赞

你必须初始化你的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("");

}


查看完整回答
反对 回复 2021-10-06
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

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


for (int i = 0; i < 9; i++)

    for (int j = 0; j < 9; j++)

        gameboard[i][j] = new grid();


查看完整回答
反对 回复 2021-10-06
  • 3 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信