Java Reference
In-Depth Information
a
a.zaehler
a.nenner
Arbeitsspeicher
3
4
b.zaehler
b.nenner
b
5
Abbildung 5.15 Wertzuweisung bei Objekten
Wie Sie der Abbildung 5.15 entnehmen können, existiert jetzt kein zweites Objekt mit
gleichem Zähler und Nenner wie beim ersten, sondern es existiert lediglich ein zweiter
Bezeichner, der aber auf das identische Objekt im Hauptspeicher verweist. Dieses Ver-
halten hat jetzt aber weitreichende Folgen. Zum Beispiel werden durch das Verändern
von Zähler und Nenner des zweiten Objekts
b.zaehler = 5;
b.nenner = 8;
zugleich auch Zähler und Nenner des ersten Objekts verändert, denn es handelt sich ja
eigentlich immer nur um ein einziges Objekt, auf das Sie mit Hilfe von zwei unter-
schiedlichen Bezeichnern zugreifen können. Man nennt dieses Verhalten auch Aliasing ,
denn ein und dasselbe Objekt besitzt dadurch einen Alias-Bezeichner.
a
a.zaehler
a.nenner
Arbeitsspeicher
5
8
b.zaehler
b.nenner
b
Abbildung 5.16 Auswirkung der Wertzuweisung an ein Objekt
Dieses Aliasing wirkt sich jetzt auch auf Vergleiche von Objekten aus. Vergleicht man z. B.
in einer if -Anweisung die beiden Brüche a und b mit
if (a == b) ...
so liefert der Vergleich nur dann true als Ergebnis zurück, wenn es sich tatsächlich um ein
und dasselbe Objekt mit zwei unterschiedlichen Bezeichnern handelt ( Abbildung 5.16 ).
Im folgenden Beispiel werden zwei unterschiedliche Objekte erzeugt, deren Zähler und
 
Search WWH ::




Custom Search