Java Reference
In-Depth Information
Datentyp
Default-Wert
int
0
double
0.0
boolean
false
char
\u0000
Referenztypen
null
Tabelle 6.1 Initialisierung von Attributen
Wurden die Attribute einer Klasse mit der Definition bereits initialisiert, so nehmen sie
diese Werte zeitlich bereits vor der Ausführung des Konstruktors an. Das bedeutet, dass
ein anschließender Konstruktoraufruf diese Werte wieder überschreibt. Man kann
sagen, dass die Initialisierung durch einen Konstruktor Vorrang gegenüber einer expli-
ziten Initialisierung bei der Definition hat.
6.4.2
Verketten von Konstruktoren
Die meisten Konstruktoren müssen mehr Aufgaben als die Initialisierung von Attribu-
ten erledigen. Diese Aufgabe könnten Sie, wie oben gezeigt, auch ohne Konstruktoren
durch explizite Initialisierungen realisieren. Oft finden in Konstruktoren bereits Über-
prüfungen statt, die in aufwändigen Kontrollstrukturen vorgenommen werden. Damit
Sie diese Abläufe nicht in jedem einzelnen Konstruktor codieren müssen, können Sie
Konstruktoren verketten. Bei der Verkettung erstellen Sie einen Konstruktor, der alle
allgemeingültigen Abläufe beinhaltet, und rufen dann in weiteren Konstruktoren
zuerst diesen Konstruktor auf, bevor Sie die zusätzlich zu erledigenden Abläufe hinzu-
fügen. Für den Aufruf eines Konstruktors innerhalb eines anderen Konstruktors benö-
tigen Sie wieder den Selbstverweis mit this . Der folgende Quellcodeausschnitt zeigt
diese Vorgehensweise am Beispiel unserer Klasse Bruch :
// Definition der Klasse Bruch mit verketteten Konstruktoren
class Bruch {
int zaehler;
int nenner;
Bruch(intz,intn){
int hz, hn, r;
Search WWH ::




Custom Search