Frage von cmrrr, 34

Java, THIS in KONSTRUKTOREN?

Ich habe eine Frage zu this in Konstruktoren:

Hier der Code:

private List(List next, List prev) this.next = next; this.prev = prev; prev.next = this; next.prev = this;

Was bewirken "prev.next = this" bzw. "next.prev = this"?

Danke für hoffentlich hilfreiche Antworten.

LG

Antwort
von sebastianla, 16

Im Konstruktor gibt es die Bezeichner "next" und "prev" doppelt. Einmal sind es lokale Aufrufparameter des Konstruktors, einmal sind es Membervariablen der Klasse.

Wenn du jetzt einfach "next" schreibst, ist damit immer der lokale Parameter gemeint (der verdeckt sozusagen den Klassenmember). Damit der Compiler weiß, dass du auf den Klassenmember zugreifen willst, musst du explizit "this.next" schreiben.

Wäre der lokale Parameter anders benannt, wäre das nicht nötig.

Antwort
von polygamma, 26

Du solltest dich mit den Grundzügen der objektorientierten Programmierung beschäftigen. 

https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html

Kommentar von cmrrr ,

sowohl "this.next = this;" als auch "this.prev = prev;" verstehe ich.

Lediglich verstehe ich nicht so ganz, was "prev.next = this;" und "next.prev = this;" bewirkt, könnten sie mir dabei helfen?

LG

Kommentar von polygamma ,

Magst du einmal den vollständigen Code der Klasse posten?

Kommentar von cmrrr ,

Ich habe lediglich einen Ausschnitt. Next steht für den Nachfolgerknoten und Prev für den Vorgängerknoten in einer List. Was bewirkt "prev.next = this" und "next.prev = this"..ich hoffe, dass die Informationen reichen..

Danke für ihre Mühe. 

Kommentar von polygamma ,

prev.next = this bedeutet, dass das Field "next" vom Objekt "prev" auf "this", also das aktuelle Objekt gesetzt wird.

Antwort
von triopasi, 15

Du hast kA wie ne Liste funktioniert, das ist das problem.

Prev ist der vorherige Knoten, prev.next der Nachfolger vom vorherigen Knoten - und das muss der aktuelle Knoten (this) sein. Eigentlich ganz logisch..

Keine passende Antwort gefunden?

Fragen Sie die Community