Java: как иметь ArrayList в качестве переменной экземпляра объекта? - PullRequest
3 голосов
/ 25 марта 2010

All

Я работаю над классным проектом по созданию маленькой игры Connect4 на Java. В настоящее время я думаю о том, чтобы иметь класс Columns, который имеет в качестве переменной экземпляра несколько целых чисел (index, max. Length, isFull?) И один ArrayList для получения как целых чисел выше, так и игр каждого игрока (например, стоящих 1 и 0 для Х и О). Это, вероятно, будет разделено на 2 класса, но вопрос остается тем же.

Моя текущая попытка выглядит так:

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

Ответы [ 4 ]

13 голосов
/ 25 марта 2010

Вы забыли дать своему участнику имя.

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;
    (...)} 
2 голосов
/ 25 марта 2010

Еще одно дополнение: лучше использовать java.util.List и использовать только определенный ArrayList при создании объекта:

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

Таким образом, вы можете изменить фактическую реализацию, не изменяя объявление члена.

2 голосов
/ 25 марта 2010
public ArrayList<Integer> list;

Но не объявляйте ArrayList общедоступным:

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

public List< Integer > getList ( )
{
    return Collections.unmodifiableList( list );
}
0 голосов
/ 25 марта 2010
private List<Integer> list = new ArrayList<Integer>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...