Java Reference
In-Depth Information
6.3.2 Methoden ohne Ergebnisrückgabe
Soll eine Methode kein Ergebnis zurückliefern, wird als Ergebnistyp der Ausdruck
void
angegeben. Es handelt sich dabei um einen
Pseudo-Typ
, der so viel bedeutet wie
»nichts«. Wir haben solche Methoden bereits mehrmals verwendet. Sie können aus
einer solchen Methode an jeder Stelle mit einer
return
-Anweisung ohne Ergebnisaus-
druck
6
return;
zur aufrufenden Anweisung zurückkehren. In der folgenden Methode
kuerzen()
wird
die Methode verlassen, wenn der ggT = 1 ist und somit feststeht, dass nicht gekürzt wer-
den kann.
Am Ende einer Methode ohne Ergebnisrückgabe kehrt der Programmablauf automa-
tisch zur aufrufenden Anweisung zurück. Sie müssen dort keine
return
-Anweisung ein-
fügen. Entsprechend kann bei einer solchen Methode die
return
-Anweisung komplett
fehlen. Sie wird am Ende der Methode quasi implizit ergänzt.
Beim Überladen von Methoden müssen Sie beachten, dass überladene Methoden sich
nicht ausschließlich durch den Ergebnistyp unterscheiden dürfen. Sie müssen sich also
zusätzlich noch in der Parameterliste unterscheiden. Da der Ergebnistyp beim Aufruf
nicht angegeben wird, könnte der Compiler nicht entscheiden, welche Methode ver-
wendet werden soll.
6.4
Konstruktoren als spezielle Methoden
Objekte werden mit dem
new
-Operator erzeugt. Nach dem Erzeugen eines Objekts sollte
es sich grundsätzlich in einem definierten Anfangszustand befinden. Der Zustand eines
Objekts unserer Klasse
Bruch
wird durch die Werte der Attribute
zaehler
und
nenner
beschrieben. Wenn wir davon ausgehen, dass nach dem Erzeugen eines Objekts der
Klasse
Bruch
beide Attribute den Wert 0 haben, dann befindet sich unser Bruch in einem
Zustand, der in der Mathematik als ungültig angesehen wird. Ein Bruch, dessen Zähler 0
ist, hat normalerweise den Wert 0. Ein Bruch, dessen Nenner 0 ist, müsste eigentlich
unendlich groß sein. Beide Annahmen widersprechen sich. Deshalb ist der Bruch mit
Zähler und Nenner gleich 0 als nicht definiert festgelegt. Um dies zu vermeiden, können
Sie nach der Erzeugung eines Objekts grundsätzlich zuerst den Wert mit der Methode
setze
auf einen definierten Wert festlegen:
Bruchb=newBruch();
b.setze(0);