Über den Konstruktor auf Getter und Setter zu greifen?
Ich habe ein Problem: In dem Java Kurs den ich gerade durcharbeite, kann man anscheinend über die Main-Methode (natürlich nachdem die Objekte erstellt worden sind) anderen Klassen Parameter und dadurch auch die ganzen Methode der einzelnen Klassen übergeben. Als ich das dann aber mit meiner eigenen Klasse gemacht habe, konnte ich die Getter und Setter Methode nur im Konstruktor benutzen und nicht wie im Kurs in der ganzen Klasse.
Der Code:
1 Antwort
Hey Morgoth364,
es ist etwas schwer zu verstehen was Du meinst. Evtl. kannst Du etwas Code zeigen?
Von dem was Du schreibst rate ich mal und deine getter und setter Methoden sind nicht "public" sondern "private".
Versuch mal sowas:
public void shouldBeAvailable() {
}
Die Methode sollte auch von anderen Klassen aus verfügbar sein.
Aufruf dann mit:
MyObject myObject = new MyObject();
myObject.shouldBeAvailable();
Gruß
Naja, bei deiner goForward-Methode greifst Du auf das Objekt "donut" zu, aber Du erzeugst nie eins.
Irgendwo muss mal stehen
Donut donut = new Donut();
Gruß
Ich sehe grad der Spieler bekommt den Donut übergeben.
Also, dann muss im Konstruktor vom Spieler das hier stehen:
this.donut=donut;
Und die Klasse Spieler muss dieses Feld erhalten:
Donut donut = null;
Gruß
Danke! Jetzt funktioniert es.
Aber warum muss man das nicht bei dem 'feld' Parameter machen?
Gruß
Guck dir mal die Parameterliste von deiner goForward-Methode an...da steht:
goForward(Feld feld)....
Damit wird ein Feld als Parameter an die Methode übergeben.
Du benutzt also nicht "Feld" der Klasse Spieler, sondern das Feld, welches eben beim Aufruf der Methode übergeben wird.
Gruß
Also müsste es doch theoretisch auch mit 'Donut.getLocation1' gehen, aber da steht dann ich soll den Getter zu static ändern.
Sorry! Falscher Gedanke.
Vielen Dank für deine Hilfe!
Ja, mit "static" ist super verwirrend.
Ich halte das auch für eine der größten Anfängerfallen.
Leider gibt es mindestens ein "static" in solchen Standard-Javaprogrammen und das ist die Main-Methode. Da muss man sich leider durchbeißen.
Irgendwann weiß man dann was static genau ist und dann ist das auch klar.
Gruß
Also meine Getter und Setter sind public.
Der Code steht jetzt oben. (Extra mit dem Fehler)