Nun sollen der Klasse Point Konstruktoren hinzugefügt werden.
Dem Benutzer sollen drei verschiedene Varianten zur Verfügung gestellt werden,
damit er bei der Initialisierung nur diejenigen Daten anzugeben braucht,
die er explizit einstellen will. Die restlichen Datenelemente werden mit
festgelegten Standardwerten belegt.
Der einfachste Konstruktor besitzt keine Parameter. Er setzt alle
Datenelemente auf Null. In der zweiten Variante sollen die Koordinaten angegeben
werden können. Der dritte Konstruktor erlaubt darüber hinaus die Angabe
einer Farbe.
Unter Verwendung von Konstruktoren sieht die Klasse Point
folgendermaßen aus:
public class Point {
public int x, y, color;
public Point() {
x = 0;
y = 0;
color = 0;
}
public Point(int newX, int newY) {
x = newX;
y = newY;
color = 0;
}
public Point(int newX, int newY, int newColor) {
x = newX;
y = newY;
color = newColor;
}
public void moveTo(int newX, int newY) {
x = newX;
y = newY;
}
public void moveRel(int dx, int dy) {
x += dx;
y += dy;
}
}
Es ist zu beachten, dass die Konstruktoren keinen Ergebnistyp besitzen.
Beim Betrachten dieses Beispiels fällt auf, dass der dritte Konstruktor
weitgehend die gleiche Funktionalität hat wie der zweite, nur dass der dritte
zusätzlich die Farbe einstellt. Gerade bei komplexeren Konstruktoren
wäre es wünschenswert, auf einen bereits vorhandenen Konstruktor zurückgreifen zu können, so dass man nur die zusätzliche Funktionalität auszuprogrammieren
braucht.
Eine Möglichkeit hierfür bietet der Verweisoperator this.