13.3 Gleiches ist noch lange nicht dasselbe |
|
Warum vergleich man zwei
String-Objekte text1
und text2
nicht einfach durch text1==text2? Um diese nur auf den ersten Blick
triviale Frage näher zu untersuchen, betrachten wir das folgende kleine
Java-Programm: |
|
Download: EqualsDemo2. java |
|
Ausgabe |
Java Java false true |
Zwei mal muss man über Tastatur ein Wort eingeben. In beiden Fällen geben wir 'Java' ein. Ein Vergleich von text1 mit text2 mit Hilfe dem Infix-Operator '==' liefert den boolschen Wert false; werden text1 und text2 mit der equals(...)-Methode verglichen, so liefert dies den boolschen Wert true. Dies zu verstehen soll uns das Abbildung 13.3.1 helfen. | |
|
|
Tatsächlich sind text1 und text2 zwei Objekte, die nicht gleich sind, das sie zwei verschiedene Referenzen darstellen. Ihre Werte sind tatsächlich gleich. text1 und text2 verweisen also auf gleiche Objekte, sie sind aber nicht dieselben. | |
Download: EqualsDemo3. java |
|
Ausgabe |
Java true true |
Die Ausgabe legt nahe, dass die Objekte, auf die text1 und text2 verweisen nicht nur gleich sondern auch die selben sind. Abbildung 13.3.2 veranschaulicht den Sachverhalt: | |
|
|
Hinweis | Die Aufgabe 4 in 13.4 Übungen führt das Thema noch etwas weiter. |
zur Startseite | www.pohlig.de (C) MPohlig 2005 |