所以,我有一个类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。我该怎么办?
答案 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[][]
!