Möchte sich ein Objekt A einem anderen Objekt B mitteilen, damit B das andere Objekt A „kennt“, so funktioniert das gut mit der this-Referenz. Demonstrieren wir das an einem „Ich bin dein Vater“-Beispiel: Zwei Klasen Luke und Darth repräsentieren zwei Personen, wobei Luke ein Attribut dad für seinen Vater hat:
LukeAndDarth.java, Teil 1
class Luke {
Darth dad;
}
class Darth {
void revealTruthTo( Luke son ) {
son.dad = this;
}
}
Spannend ist die Methode revealTruthTo(Luke), denn sie setzt beim übergebenen Luke-Objekt das dad-Attribut mit der this-Referenz. Damit kennt Luke seinen Vater, getestet in folgender Klasse:
LukeAndDarth.java, Teil 2
public class LukeAndDarth {
public static void main( String[] args ) {
Luke luke = new Luke();
Darth darth = new Darth();
System.out.println( luke.dad ); // null
darth.revealTruthTo( luke );
System.out.println( luke.dad ); // Darth@15db9742
}
}
Hinweis: In statischen Methoden steht die this-Referenz nicht zur Verführung, da wir uns in Klassenmethoden nicht auf ein konkretes Objekt beziehen.