4

I'm working on a class project to build a little Connect4 game in Java. My current thinking is to have a class of Columns that have as instance variable a few integers (index, max. length, isFull?) and one ArrayList to receive both the integers above and the plays of each players (e.g., 1's and 0's standing for X's and O's). This is probably going to be split between 2 classes but the question remains the same.

My current attempt looks like this:

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>;
    (...)}  

Unfortunately, this doesn't compile. The compiler says an <identifier> is missing where my ArrayList declaration stands.

We're just starting objects and we haven't really looked into other instance variables than the basic types.

Can someone tell me where my error is and how to correct it?

5 Answers 5

13

You forgot to give your member a name.

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;
    (...)} 
Sign up to request clarification or add additional context in comments.

1 Comment

Thank you, this was effectively the problem.
2

One more addition: better use java.util.List and only use the specific ArrayList during the creation of the object:

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

That way you can change the actual implementation without having to change the member declaration.

Comments

2
public ArrayList<Integer> list;

But, do not declare ArrayList public:

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

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

2 Comments

This is good practice, but doesn't answer the question does it? He was missing a name for the variable.
This is by the way not the root cause. See Gregory's answer for the real answer. You're simply forgotten the identifier, like as you have done for hMax, index, etc..etc..
1
private List<Integer> list = new ArrayList<Integer>();

Comments

0

You forgot to give the variable a name. Correct Syntax:

public ArrayList<Integer> listName;

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.