Java Reference
In-Depth Information
Bruch a;
a.zaehler
a.nenner
Arbeitsspeicher
3
4
...
Bruch b;
b.zaehler
b.nenner
Arbeitsspeicher
3
4
...
a.multipliziere(b);
Abbildung 6.6 Zugriff auf einen Referenztyp
Der Aufruf a.multipliziere(b); bewirkt, dass die Methode mit m als Referenz auf b abge-
arbeitet wird. Problematisch kann dieses Verhalten sein, wenn Sie in der Methode
schreibend auf die Parameter zugreifen. Ändern Sie z. B. mit der Anweisung m.zaehler =
34; den Wert des Zählers von m , dann haben Sie damit eigentlich den Wert von b.zaeh-
ler geändert. Dies müssen Sie bei Schreibzugriffen auf Parameter, die als Referenz über-
geben werden, beachten. Primitive Datentypen werden nicht als Referenz übergeben,
sondern als echte Kopie. Damit wirken sich dort Schreibzugriffe nicht auf die Aufrufar-
gumente aus.
6.2.3
Überladen von Methoden
Innerhalb einer Klasse können mehrere Methoden mit gleichem Namen existieren. Das
kann aber nur funktionieren, wenn es ein eindeutiges Unterscheidungsmerkmal gibt.
Dieses Unterscheidungsmerkmal ist die Parameterliste. Erstellen Sie eine Methode mit
einem Namen, der bereits für eine andere Methode verwendet wurde, dann bezeichnet
man das als Überladen einer Methode.
Dieses Überladen bietet sich immer an, wenn Sie mehrere Methoden für eine ähnliche
Funktion benötigen. Ein Beispiel für solche Methoden sind Methoden, die ein Objekt
auf einen definierten Anfangszustand, vergleichbar mit einer Initialisierung, setzen. So
können wir folgende beiden Methoden mit dem Namen setze definieren:
void setze(int z) {
zaehler = z;
nenner = 1;
}
 
Search WWH ::




Custom Search