Objektreferenz

Pendragonina

Neues Mitglied
Hallo,

ich hab eine Aufgabe zu Pokemon bekommen und muss dazu zwei Klassen und ein Enum erstellen.

Dafür hab ich schon die Klasse Pokemon:
Java:
public class Pokemon {
   
    public String name;
    public Type type;
    public static int number=0;
    public static int nextNumber=1;
   

    public Pokemon(String name, Type type) {
        this.name = name;
        this.type = type;
        number=number+1;
        nextNumber=nextNumber+1;
    }

    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }

    public Type getType() {
        return type;
    }

    public void setType(Type type) {
        this.type = type;
    }
   
    public static int getNumber(){
        return number;
    }

    public static int getNextNumber(){
        return nextNumber;
    }
   
    public String toString() {
        return "Pokemon [name= " + name + ", type= " + type + ", number= " + number + ", nextNumber= " + nextNumber + "]";
    }

    public static void main(String[] args) {
        Pokemon P1= new Pokemon("Pikachu",Type.Electric);
        System.out.println(P1.toString());
        Pokemon P2;
        P2= new Pokemon("Charmander", Type.Fire);       
        System.out.println(P2.toString());

    }

}

Und mein Enum:
Code:
public enum Type {

    Normal, Fire, Water, Electric, Grass, Ice, Fighting, Poison, Ground, Flying, Psychic, Bug, Ghost, Rock, Dragon, Dark, Steel, Fairy
}

Die weitere Aufgabenstellung lautet:
Programmieren Sie die Klasse Trainer mit den angegebenen Attributen firstname und lastname und erstellen Sie einen geeigneten Konstruktor sowie Getter/Setter-Operationen.
7. Lernziel Objektreferenz: Erweitern Sie die Klasse Trainer um ein Attribut pokemon, welches eine Referenz auf ein Pokemon darstellt. Das Attribut soll auch über entsprechende Operationen gespeichert und abgerufen werden können.

Bisher hab ich:
Code:
public class Trainer {

    public String firstname;
    public String lastname;
    public Pokemon pokemon;           //ist das denn richtig?
   
    public Trainer(String firstname, String lastname) {
        this.firstname = firstname;
        this.lastname = lastname;
    }
   
    public String getFirstname() {
        return firstname;
    }


    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }

    public String getLastname() {
        return lastname;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname;
    }


    public static void main(String[] args) {
       

       
       

    }

}

Jetzt zur Frage: Wie füge ich denn eine Objektreferenz in meine Klasse ein? Kommt es in den Konstruktor? Oder muss es woanders hin? Muss ich im Grunde genommen dann in der main-Funktion hinzufügen, welches Pokemon ich ihm zuordne?

Danke schon mal :)
 

Robat

Top Contributor
Hallo Pendragonina,

als erstes:
deine Klasse Trainer braucht keine eigene main-Methode (ausser Pokemon und Trainer sollen 2 verschiedene, von einander unabhängige Programme sein, was ich nicht glaube :) ).
Die main hast du ja schon in Pokemon (was - wenn man na OOP geht - auch nicht schön ist aber nun gut. )

als zweites:
Dein Ansatz ist schon gut. Nun solltest du in deinem Trainer-Konstruktor noch einen Parameter Pokemon hinzufügen und ihn dann initialisieren. In deiner Main-Methode kannst du dann folgendes machen:

Java:
public static void main(String args[])
{  
    Pokemon pikachu = new Pokemon("Pikachu",Type.Electric);
    Trainer trainer1 = new Trainer("Max", "Mustermann", pikachu);
}

Wenn du in natürlich weißt, dass sich das Pokemon deines Trainers oft ändert, kannst du das ganze auch über Getter und Setter machen.

Java:
public Pokemon getPokemon()
{
    return pokemon;
}

public void setPokemon(Pokemon pokemon)
{
    this.pokemon = pokemon;
}


Gruß
Robert
 

Pendragonina

Neues Mitglied
Vielen Vielen Dank Robert,

Das hat mir sehr viel weiter geholfen. Ob die main in Klasse Pokemon schön ist oder nicht, kann ich leider nicht sagen. In der Aufgabenstellung ist es aber gefordert gewesen, deswegen kann ich das nicht ändern.

Aber Danke nochmal.

Gruß
Pendra :)
 

Ähnliche Java Themen

Neue Themen


Oben