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

Confusion with Instantiating Custom Object array

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

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

所以这是我原来的,但是我会得到一个错误说 "expected ']'" 它没有编译,但是当我从 lobsters 变量中删除 [i] 时,它编译很容易没有错误.这就是混乱所在,因为我的印象是在数组中实例化对象的唯一方法是遍历它们并通过 i 引用它们。我试过几种不同的龙虾组合。 I.E 离开龙虾类型转换,删除“[i]”。这些都不起作用,我很好奇是否有人能指出问题所在,尽管它值得,但我需要完成它...

注意:prepare() 方法已在脚本的后面定义。 (super 是一个@override)。

Lobster lobsters[i] = new Lobster();

应该是

lobsters[i] = new Lobster();

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

在for循环中,只需使用:

lobsters[i] = new Lobster();