Methode in anderer Klasse aufrufen

Guten Tag,

Ich muss für ein Uni-Projekt ein "Konsolenspiel" schreiben. Dabei habe ich nun folgendes Problem:

ich muss in einer Datei, in einer switch-case eine Methode aus einer anderen Datei aufrufen.
Diese Methode lautet:

public void sleep() {
System.out.println(this.name+ "schläft...");
}

Dieses "Spiel" hat mehrere "Spieler" und muss daher auch für verschiedene Spieler aufgerufen werden können...

Vielen Dank für die Hilfe im Vorraus!
 
Ja sorry, ich packe mal dazu wo ich denke, dass es noch hilfreich wäre...


static Superhero[] heroArray = new Superhero[5];
public static void createSuperhero() {

Superhero held1 = new Superhero("Held 1");
Superhero held2 = new Superhero("Held 2"); //Das Array das die "Spieler" erstellt (Es werden zwei weitere
Superhero held3 = new Superhero("Held 3"); per Aufruf erstellt)
heroArray[0] = held1;
heroArray[1] = held2;
heroArray[2] = held3;
}
 
held1.sleep() oder auch heroArray[0].sleep() führt die Methode des Superhero-Objekts mit dem Namen "Held 1" aus - sofern die Klasse diese Methoden auch implementiert.
 
Also "held1.sleep()" funktioniert nicht, das habe ich vorher bereits probiert. Da kommt dann der Fehler "held1 cannot be resolved to a variable"

heroArray[0].sleep() hingegen funktioniert.

Danke dir!
 
Also "held1.sleep()" funktioniert nicht, das habe ich vorher bereits probiert.
Das funktioniert schon, die Frage ist nur an welcher Stelle. Dir sollte klar sein, dass held1 eine lokale Variable in createSuperhero() ist. Dort existiert held1, d. h. Du kannst dort auch held1.sleep() aufrufen. Außerhalb der Methode existiert hedl1 nicht (außer Du hast erneut eine lokale Variable mit dem Namen deklariert), daher "held1 cannot be resolved to a variable". heroArray ist dagegen eine Instanzvariable, die in allen Methoden zur Verfügung steht.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben