如何在数组方法中调用对象?

时间:2014-03-09 19:29:23

标签: java arrays object methods

我创建了一个名为Tilecreator的类。在这个类中,有方法GenerateTile(),它将一些值应用于对象。

如果我创建了这些对象的数组,如何在循环中对它们应用值?

例如,我尝试过:

for(int i = 0; i < 10; i++){
    createdTile[] tile[i] = new Tilecreator();
    tile[i].GenerateTile(
}

2 个答案:

答案 0 :(得分:0)

Tile[] tiles = new Tile[100];

如果你想遍历一个数组并检查是否有任何空位要初始化:

for(int id = 0; id < tiles.length; id++) //loops through entire array starting at tiles[0]
     if(tiles[id] == null) { //checks if spot in array is available
         tiles[id] = value; //= new Tile(); initializes value for reference in array
         tiles[id].method(); //calls method from initialized reference
     }

如果您不关心空白点,请取出if(tiles[id] == null)

如果你只是想循环一个已经有值的数组,并想要触发方法

for(Tile tile : tiles) 
    tile.method()

要初始化数组点,你必须使用我展示的第一个forloop(基本forloop)。增强的forloops(第二个循环示例)使用数组中值的副本,而不是实际的引用本身,因此您无法使用该副本进行初始化

答案 1 :(得分:0)

我假设在循环之前有这样的东西:

Tile[] tile = new Tile[10];

如果GenerateTile方法是静态的,并且该方法接受tile对象,则可以执行以下操作:

for(int i = 0; i < 10; i++){
 tile[i] = new Tile(); // or another constructor
 tile[i] = Tilecreator.GenerateTile(tile[i]);
}

如果你有一个Tilecreator对象数组(我认为是这种情况,请给出你的语句“如果我已经创建了这些对象的数组......”):

Tilecreator[] tile = new Tilecreator[10];
for(int i = 0; i < 10; i++){
 tile[i] = new Tilecreator(); // or another constructor
 tile[i].GenerateTile();
}

如果是这种情况,我会将Tilecreator重命名为Tile,并有一个单独的Tilecreator类来处理tile数组的创建。