与实例化自定义对象数组混淆

时间:2015-02-07 05:32:55

标签: java arrays for-loop instantiation

我有一个名为CrabWorld的类,它包含场景中的所有actor。我有一个Lobster()的数组,我在构造函数调用时初始化。我有一个简单的for循环,循环遍历数组并实例化每个龙虾。

public class CrabWorld extends World {

public Lobster[] lobsters = new Lobster[5];
public Crab playerCrab = new Crab();

private Counter score = new Counter("Score: ");
private int numbOfWorms = 0;

/**
 * Constructor for objects of class CrabWorld.
 * 
 */
    public CrabWorld(){

        super(560, 560, 1); 

        for (int i = 0; i < lobsters.length; i++){
            Lobster lobsters[i] = new Lobster();
        }

        prepare();
    }
}

所以这就是我最初所拥有的,但是我会得到一个错误,说“预期'”'“它不会卷曲,但是当我从龙虾变量中删除[i]时,它很容易编译而没有错误。这就是confustion所设置的地方,因为我觉得你在数组中实例化对象的唯一方法是循环遍历它们并通过i引用它们。我尝试过切断不同的龙虾组合。 I.E离开龙虾类型,删除“[i]”。这些都没有奏效,我很想知道是否有人能指出这个问题,对于所有这些问题,我需要完成它......

注意:后面的脚本中已经定义了prepare()方法。 (super是@override)。

2 个答案:

答案 0 :(得分:3)

Lobster lobsters[i] = new Lobster();

应该是

lobsters[i] = new Lobster();

已声明lobsters数组,因此您只需将Lobster个实例分配给数组的每个索引。

答案 1 :(得分:1)

在for循环中,只需使用:

lobsters[i] = new Lobster();