2010-03-25 46 views
2

全部,Java:如何將ArrayList作爲對象的實例變量?

我正在開發一個類項目,用Java構建一個小型的Connect4遊戲。我目前的想法是有一個類的實例變量有幾個整數(索引,最大長度,isFull?)和一個ArrayList來接收上面的整數和每個玩家的遊戲(例如,1和0的站立對於X's和O's)。這可能會分成兩個班級,但問題依然存在。

我現在的嘗試是這樣的:

import java.util.ArrayList; 
public class Conn4Col { 
    public int hMax; 
    public int index; 
    public final int initialSize = 0; 
    public final int fullCol = 0; 
    public ArrayList<Integer>; 
    (...)} 

不幸的是,這並不編譯。編譯器說我的ArrayList聲明的地方缺少一個<identifier>。

我們剛剛開始創建對象,而且我們還沒有真正查看其他實例變量,而不是基本類型。

有人能告訴我我的錯誤在哪裏以及如何糾正它?

非常感謝,

JDelage

回答

12

你忘了給您的會員名稱。

import java.util.ArrayList; 
public class Conn4Col { 
    public int hMax; 
    public int index; 
    public final int initialSize = 0; 
    public final int fullCol = 0; 
    public ArrayList<Integer> list; 
    (...)} 
+0

謝謝你,這是有效的問題。 – JDelage 2010-03-25 15:43:47

2
public ArrayList<Integer> list; 

但是,不申報的ArrayList市民:

private ArrayList<Integer> list = new ArrayList<Integer> (); 

public List<Integer> getList () 
{ 
    return Collections.unmodifiableList(list); 
} 
+0

Doh ...謝謝。我現在覺得很傻。 :-) – JDelage 2010-03-25 15:23:55

+1

這是很好的做法,但不回答這個問題嗎?他錯過了該變量的名稱。 – 2010-03-25 15:25:50

+0

這不是根本原因。看到格雷戈裏的答案是真實的答案。你簡單地忘記了標識符,就像你爲'hMax','index'等做的那樣。.. – BalusC 2010-03-25 15:26:14

0
private List<Integer> list = new ArrayList<Integer>(); 
2

還有一個另外:更好地利用java.util.List的,只有創建對象的過程中使用特定的ArrayList:

public List<Integer> list; 
... 
list = new ArrayList<Integer>(); 

這樣,你可以改變實際執行不必須更改成員聲明。

相關問題