對於初學者,我有兩個相關的類:Enemies.java和Sarz.java。敵人擴展了薩爾茲。如何使用數組對象上的另一個類的方法?
public class Enemies extends Sarz {
它有一個內部有一些敵人物體的陣列。
enemies[0] = new Enemies("Dragon", 100, 100, "Cave");
enemies[1] = new Enemies("Saturn Fly Trap", 10, 15, "Forest");
在薩爾茲,我製作了一個Sarz類型的數組,並在其中存儲了一些隨機生成的敵人。
Enemies e = new Enemies();
e.generateEnemies();
Sarz[][] map = new Sarz[5][5];
while (count < 4){
row = r.nextInt(5);
column = r.nextInt(5);
if (map[row][column] == null){
map[row][column] = e.enemies[r.nextInt(8)];
System.out.println(map[row][column].getName() + " at " + row + "," + column);
count++;
}
}
我的問題是,當我使用println語句測試,他們已經正確地存儲在隨機點,但我似乎無法得到任何回報敵人的名字給我。我嘗試過使用Arrays.toString()和Enemies類的getters和setter,但它們不能在地圖數組上工作,因爲它是Sarz類型的。我希望能夠使用map [row] [column] .getEnemyName()或至少返回一個字符串,而不是Enemies @ 14ae5a5的1,0。
謝謝!你能解釋爲什麼這個工作?試圖從我的錯誤中吸取教訓... – Riles
它的作用是因爲你爲'敵人'的物體投了一個'薩爾茲'。所以現在,它可以使用'Enemies'的方法。 – Hackerdarshi