2017-02-15 10 views
0

Я делаю игру тральщика в java, и я объявил 2d массив объектов Tile в качестве игрового поля. 2d array board объявляется как переменная экземпляра, а затем заполняется объектами Tile, когда пользователь передает размер (от 4x4 до 10x10 включительно). Затем я пытаюсь вызвать метод на конкретном объекте из другого метода в классе GameBoard, используя формат board[a][b].setMarked(true). Я получаю ошибку «не могу найти символ - метод setMarked (boolean)». Я смущен относительно того, как GameBoard не может видеть метод в Tile, поскольку он был объявлен как открытый, и я могу назвать его из объекта без массива. Я предполагаю, что это связано с переменными экземпляра и конструкторами?Метод не отображается при вызове из массива 2d объектов (java)?

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 является булева переменная экземпляра объявлена ​​в плитке.

+0

Я тоже так думал, и попробовал не повезло – whims

ответ

1

У вас есть массив объектов, и объект не существует метода setMarked (булево м), подумайте об изменении его в массив плитки

+0

Спасибо, я своего рода думал, что это было бы легко. – whims