2010-03-25 49 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>(); 

这样,你可以改变实际执行不必须更改成员声明。

相关问题