2015-03-08 48 views
1

我正在嘗試在二維數組中創建一個由自制對象Square創建的gamebord。 當我在我的構造函數中創建它時,只創建第一個數組,並且第二個數組充滿Null。 當我嘗試這與INT,它確實工作正常。 我是否需要添加一些特別的東西給我的Square類,以使它成爲可能的二維數組或我缺少其他東西?二維數組未按預期方式填充

public class Bord { 

private Square[][] gameBord; 

public Bord(int hoogte, int breedte) { 
     if (isGameBordSizeValid(hoogte, breedte)) { 
      gameBord = new Square[breedte][hoogte]; 
      //populateMiddleOfBord(hoogte, breedte); 
     } else { 
      throw new IllegalArgumentException("GameBord size is not valid"); 
     } 

    } 

V

我的Square類

public class Square { 

    private final Integer lengte; 
    private final Integer breedte; 
    private boolean isBezet; 
    private Stone steen; 

    public Square() { 
     this.lengte = 4; 
     this.breedte = 4; 
     this.isBezet = false; 
    } 

    public void squareWordBezet(Color kleur) { 
     if (!getIsBezet()) { 
      isBezet = true; 
      this.steen = new Stone(kleur); 
     } 

    } 

    public boolean getIsBezet() { 
     return isBezet; 
    } 

} 
+1

Java並不真正是我的專業領域,但我認爲它可以與整數一起工作,因爲它們是原始類型(即值)類型,而您的類是引用類型。這將使上面的代碼有效地創建一個未初始化的引用數組,該迭代器將迭代所有條目並分配一個新的實例。 – sunside 2015-03-08 17:41:02

回答

1

您必須初始化數組的每個元素。像這樣的:

for(int i = 0; i < breedte;i++){ 
    for(int k = 0;k < lengte;k++){ 
     gameBord[i][k] = new Rect(//parameters here"); 
    } 
} 
1

您需要填充您的陣列廣場對象了。現在,你擁有的只是數組,而不是它應該包含的對象。