6.9.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 6.6.3.1 helfen. | |
|
|
Tatsächlich sind
text1
und text2
zwei Objekte, die nicht gleich sind,
da sie zwei verschiedene Referenzen darstellen. Ihre Werte sind
aber 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 6.6.3.2 veranschaulicht den Sachverhalt: | |
|
|
Hinweis | Die Aufgabe 4 in 6.10 Übungen führt das Thema noch etwas weiter. |
zu | 6.10 Übungen |
zur Startseite | www.pohlig.de (C) MPohlig 2007 |