Wie kann ich anhand von array in bluej attribute initialisieren?
Hallo,
Ich habe in meinem BlueJ-Java Skript ein Attribut: int aktueller_gegner. Ich möchte nun in einer Methode, bei der ich auf Werte der Klasse : Monster zugreife mithilfe dieser Zahl je zwischen den Objekten monster1, monster2, monster3, ... unterscheiden können ohne eine if-Konstruktion wie diese hier bauen zu müssen:
if (aktueller_gegner == 1)
{
monster1 ... ;
}
else if (aktueller_gegner == 2)
{
monster2 ... ;
}
else if (aktueller_gegner == 3)
{
monster3 ... ;
}
Ich habe gehört, dass das mit Array möglich wäre, habe aber keine Idee wie und auch sonst nirgendwo etwas gefunden. Kann mir da vllt. jemand weiterhelfen?
1 Antwort
Die Voraussetzung wäre, dass du alle Monsterobjekte in einem Array hast. Dann kann dein Attribut als Index herhalten (sollte aber auch mit dem Wert 0 beginnen).
Beispiel:
Monster[] monster = new Monster[] { new Monster(), new Monster(), /* etc. */ };
int currentEnemyIndex = 2;
Monster currentEnemy = monster[currentEnemyIndex];
Zusätzlich solltest du bei diesem Lesevorgang im Vorfeld prüfen, ob der Index tatsächlich im erlaubten Wertebereich liegt (also zwischen -1 und der Arraylänge - beide Grenzen jeweils exklusiv).