Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo ich habe eine Klasse die heißt Superhero und die hat als Attribut Superpower nun hab ich auch eine Klasse die Superpower heißt und da ist der Name und die Fähigkeitsbeschreibung als Attribut festgelegt. Hab auch Getter und Setter erstellt. Dann hab ich ein Objekt super1 als Superpowerobjekt erzeugt und hab versucht meinem erzeugten Helden das Attribut Superpower zu geben mit Hero.setSuperpower(super1); aber es funktioniert nicht
private static void createSuperhero(){
//Abfrage nach Namen
System.out.println("\nWelchen Namen soll der Held haben?");
//Scannerobjekt erstellen
Scanner scanner = new Scanner(System.in);
//Scannervariable erstellen
String name2 = scanner.nextLine();
//Scanner schließen
scanner.close();
//Held erstellen
Superhero hero = new Superhero(name2);
hero.setID();
hero.setHealthpointsCurrent(50);
hero.setHealthpointsMax(50);
hero.setExperiencePoints(0);
hero.setReadytofight(true);
hero.setInFight(false);
hero.setAlive(true);
//Superpower bestimmen
System.out.println("Was soll die erste Superpower sein?");
Scanner scanner2 = new Scanner(System.in);
String Auswahl = scanner2.nextLine();
switch(Auswahl) {
case "1" : hero.setSuperpower1(super1); // hier liegt der Fehler
Code:
public static void main(String[] args) {
//Superpower erstellen
Superpower super1 = new Superpower("Eispickel");
Superpower super2 = new Superpower("Feurball");
Superpower super3 = new Superpower("Blattschwert");
Superpower super4 = new Superpower("Wasserstoß");
Superpower super5 = new Superpower("Dunkelnebel");
Superpower super6 = new Superpower("Lichtsstrahl");
//Superpowerattribute setzen
super1.setactionDescription("schießt Eisplitter auf den Gegner");
super1.setid();
super2.setactionDescription("schießt einen Feuerball auf den Gegner");
super2.setid();
super3.setactionDescription("greift den Gegner mit einem Blattschwert an");
super3.setid();
super4.setactionDescription("Durchstößt den Gener mit Wasser");
super4.setid();
super5.setactionDescription("Umhüllt den Gegner mit Nebel");
super5.setid();
super6.setactionDescription("Durchdringt den Gegner mit einem Lichtstrahl");
super6.setid();
Vermutlich sind die Variablen super1-x nicht mehr in ihrem Gültigkeitsbereich. Wenn du sie in einer Methode anlegst, dann werden sie am Ende dieser Methode ungültig und du kannst sie nicht innerhalb einer anderen Methode verwenden.
Vermutlich sind die Variablen super1-x nicht mehr in ihrem Gültigkeitsbereich. Wenn du sie in einer Methode anlegst, dann werden sie am Ende dieser Methode ungültig und du kannst sie nicht innerhalb einer anderen Methode verwenden.
Generell würde ich dir auch empfehlen auf die Setter wie z.B. bei Superpower für ID und Description zu verzichten und diese Werte direkt beim Konstruktor mit zu initialisieren. Ein Konstruktor sollte eine voll funktionsfähige Klasse erzeugen.