Java Reference
In-Depth Information
Da sie sich in der Parameterliste unterscheiden, stellt das kein Problem dar. Es stellt sich
aber die Frage, welche der beiden Methoden tatsächlich vom Compiler ausgewählt wird,
wenn der für beide Methoden passende Aufruf a.erweitern(5); verwendet wird.
Lösung: Der Compiler geht bei der Overload-Resolution nach folgenden Regeln vor:
Zuerst werden alle passenden Methoden gesammelt; auch die, bei denen eine implizite
Typumwandlung erforderlich ist, werden dabei mit einbezogen. Bleibt nur eine
Methode übrig, wird diese ausgewählt. Passt überhaupt keine Methode, dann ist der
Aufruf fehlerhaft und wird nicht übersetzt. Passen mehrere Methoden, wird die ausge-
wählt, die am besten passt. Passen mehrere Methoden gleich gut, dann ist der Aufruf
nicht eindeutig und wird nicht übersetzt. In unserem Beispiel passt die Methode
genauer, bei der keine Typumwandlung erforderlich ist.
6.3
Ergebnisse
6.3.1
Methoden mit Ergebnisrückgabe
Mit der Übergabe von Argumenten an die Parameter einer Methode teilen wir der
Methode mit, mit welchen Werten sie arbeiten soll. Es fließt Information von der aufru-
fenden Anweisung an die Methode. Häufig soll auch eine Information von der Methode
zurück an die aufrufende Anweisung möglich sein. Zum Beispiel berechnet die
Methode aus den Parametern einen Ergebniswert, der dann an die aufrufende Methode
zurückgeliefert werden soll.
In unserer Klasse Bruch können wir z. B. eine Methode erstellen, die den Wert des Bruchs
als Dezimalzahl zurückliefern soll. Folgende Schritte sind dazu erforderlich:
Vor dem Methodennamen wird anstelle von void der Typ des Ergebnisses ange-
geben.
Im Rumpf der Methode steht eine return -Anweisung, die einen Ausdruck enthält,
der dem Typ des Ergebnisses entspricht.
Allgemein sieht der Aufbau einer Methode mit Ergebnisrückgabe folgendermaßen aus:
Datentyp methodenname(...) {
return ausdruck;
}
Listing 6.6 Allgemeiner Aufbau einer Methode mit Rückgabewert
Search WWH ::




Custom Search