Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中使用数组有问题吗?_Java - Fatal编程技术网

在java中使用数组有问题吗?

在java中使用数组有问题吗?,java,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;

因此,我有一个类
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;
这给了我
意外的令牌:[
板[0]上。xpos=0;
。有人能帮我解决这个问题吗


编辑:


好的,我移动了
板[0].xpos=0;
在一个方法中;现在它给了我NullPointerException。我该怎么办?

好吧,如果你做得正确,你会得到
NullPointerException
,因为你还没有创建任何对象。我猜你犯了一些语法错误。

好吧,如果你做得正确,你会得到
NullPointerException
还没有创建任何对象。我猜您犯了一些语法错误。

您正在尝试生成一个不在方法或静态范围内的语句

语句
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[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
中初始化[并访问]元素,您必须在方法或构造函数中进行初始化。

board
中的所有
正方形都是
null
并且您正试图访问null对象的字段

可以使用以下命令初始化阵列:

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

另外,我不确定你想做什么,但是你应该考虑使用<代码>方块[]/Cord>!

< P> < <代码>平方< /代码> s在<代码>板<代码>是<代码> null <代码>,并且你试图访问一个空对象的字段…

可以使用以下命令初始化阵列:

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


我也不确定你想做什么,但是你应该考虑使用<代码>方块[][]。

请再发布一些代码。这看起来像是语法错误。错误在另一行,请发布更多代码。抱歉,我编辑它时删除了它:X这不是完整的代码。任何编译此代码的人都会收到编译时错误,底部的语句是意外的(它们需要位于相同或不同类中的方法中。然后获取运行时空指针异常,即您没有将每个数组值设置为新的方形对象。要进行编辑,请将每个值初始化为新对象。board[0]=新方形(num,num,num,num);请再发布一些代码。这看起来像是语法错误。错误在另一行,请发布更多代码。抱歉,当我编辑它时,我删除了它:X这不是完整的代码。任何编译此代码的人都会得到一个编译时错误,底部的语句是意外的(它们需要位于同一类或不同类的方法中。然后会得到一个运行时空指针异常,即您没有将每个数组值设置为新的Square对象。要进行编辑,请将每个值初始化为一个新对象。board[0]=新Square(num,num,num,num,num);什么意思,“您还没有创建任何对象”?@amit我想他可能正在使用一个IDE来预处理语法,因为他可能把语句放在了一个方法之外。@skynorth:我不这么认为,我认为这些语句不在一个方法中这一事实导致了编译错误,正如预期的那样。@amit他得到了意外的令牌编译错误,这一事实告诉我目前,他正在使用一个定制的IDE(甚至不是真正的Java,请参见上面的评论)。Java编译器不会给出这种编译错误。你说“你还没有创建任何对象”是什么意思?@amit我想他可能正在使用一个IDE来预处理语法,因为他可能把语句放在了一个方法之外。@skynorth:我不这么认为,我认为这些语句不在一个方法中这一事实导致了编译错误,正如预期的那样。@amit他得到了意外的令牌编译错误,这一事实告诉我目前,他正在使用一个自定义IDE(甚至不是真正的Java,请参见上面的评论)。Java编译器永远不会给出这种编译错误。为什么是Square[]在班里吃板子Square@user1188752:我不知道你实际上想做什么。这只是一个正在编译的代码示例。没有更多关于你想实现什么的信息-我只能猜测。正在处理的国际象棋游戏-Square是屏幕上的一个正方形board@user1188752然后
Square[]棋盘
应该在
游戏
类或其他东西中。现在您已经解决了编译错误-注意
Square[]棋盘=新的正方形[64];
不创建
Square
s。它只创建数组,按住
null
s。您需要初始化
board[i]=新的正方形(…);
对于每个
i
@user1188752:试着“玩它”,看看你是否能弄明白。如果不能-避免用新问题编辑这个问题-你应该发布一个新问题-描述新情况和新问题。我相信有人会很快回答你…为什么是方形的[]在班里吃板子Square@user1188752:我不知道你实际上想做什么。这只是一个正在编译的代码示例。没有更多关于你想实现什么的信息-我只能猜测。正在处理的国际象棋游戏-Square是屏幕上的一个正方形board@user1188752然后
Square[]棋盘
可能位于
游戏
类或其他类中。现在您已经解决了编译错误-请注意
Square[]board=new Squa