我正在用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中声明的布尔实例变量。
答案 0 :(得分:1)
你有对象数组,而Object没有方法setMarked(boolean m),想想把它改成Tiles数组