从2d对象数组(java)调用时看不到的方法?

时间:2017-02-15 18:12:16

标签: java arrays multidimensional-array

我正在用java做一个扫雷游戏,我已经宣布了一个2d的Tile对象数组作为游戏板。将2d数组board声明为实例变量,然后在用户传递大小(4x4到10x10,包括4x4到10x10)后填充Tile对象。然后,我尝试使用格式GameBoard从类board[a][b].setMarked(true)中的另一个方法调用特定对象上的方法。我收到错误“找不到符号 - 方法setMarked(boolean)”。我很困惑GameBoard如何在Tile中看不到该方法,因为它被声明为public,我可以从非数组对象中调用它。我假设它与实例变量和构造函数有关吗?

GameBoard类相关代码:

public class GameBoard {
    private Object[][] board;

    public GameBoard(int a) {
        board = new Object[a][a];
        for (int i=0; i<a; i++) {
            for (int j=0; j<a; j++) {
                board[i][j] = new Tile(false);
            }
        }
    }

    public void mark(int a,int b) {
        board[a][b].setMarked(true);
    }
}

瓷砖类相关代码:

public void setMarked(boolean m) {
    marked = m;
}

其中marked是在Tile中声明的布尔实例变量。

1 个答案:

答案 0 :(得分:1)

你有对象数组,而Object没有方法setMarked(boolean m),想想把它改成Tiles数组