Die im oben gezeigten Beispiel entstandene Code-Dopplung sollte verhindert werden, da sie fehler- und wartungsanfällig ist. Besser ist die Verkettung von Konstruktoren (wie auch von normalen Funktionen).
public Kreis() { this(0,0,1); } public Kreis(double r) { this(0,0,r); } public Kreis(double x, double y, double r) { mitte = new Punkt2D(); mitte.setzen(x,y); radius = r; }
Der this Operator bezeichnet das Object selbst. Es ist this.r identisch mit r.
Beispiel: Üblich ist das Kopieren eines Objects mit this
public Kreis kopieren() { return new Kreis(this); }
Der Wert von this kann nicht verändert werden.
Im Beispiel wird durch die geschweiften Klammern hinter this ein Konstruktor aufgerufen. Dies kann aber nur aus einem Konstruktor desselben Klasse geschehen.