在java中使用数组的问题?

时间:2012-02-24 13:57:58

标签: java

所以,我有一个类Square,我正在尝试为它使用数组board。这是我的代码:

public class Square{
   public int pcolor;
   public int contains;
   public int xPos;
   public int yPos;
   Square(int xp,int yp,int pc,int cont){
       xPos=xp;
       yPos=yp;
       contains=cont;
       pcolor=pc;
   }
};
Square[] board = new Square[64];
board[0].xPos=0;

这会在unexpected token: [上给我board[0].xpos=0;。任何人都可以帮我解决这个问题吗?


编辑:

好的,我将board[0].xpos=0;移到了方法中;现在它给了我NullPointerException。我该怎么办?

3 个答案:

答案 0 :(得分:3)

您正在尝试在方法或静态范围内创建语句。

语句board[0].xPos = 0;应该[可能]在方法中。

您似乎也有多余的};

这段代码编译得很好:

public class Square{
    public int pcolor;
    public int contains;
    public int xPos;
    public int yPos;
    Square(int xp,int yp,int pc,int cont){
        xPos=xp;
        yPos=yp;
        contains=cont;
        pcolor=pc;
    }
    Square[] board = new Square[64];
}

要在board中初始化[和访问]元素 - 您必须在方法或构造函数中执行此操作。

答案 1 :(得分:1)

好吧,如果你这样做的话,你会得到NullPointerException,因为你还没有创建任何对象。我的猜测是你做了一些语法错误。

答案 2 :(得分:0)

Square中的所有board都是null,而您正在尝试访问空对象的字段...

您可以使用以下命令初始化数组:

for(int i = 0; i < board.length; i++)
    board[i] = new Square(...something_here...);

另外,我不确定你要做什么,但你应该考虑使用Square[][]