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
import info1.*;
public class EqualsDemo2{

  public static void main (String args[]) {
      String text1 = new String();
      text1 = Console.in.readWord();
      String text2 = new String();
      text2 = Console.in.readWord();
      boolean gleich1 = text1==text2;
      System.out.println(gleich1);
      boolean gleich2 = text1.equals(text2);
      System.out.println(gleich2);
  }
}
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.
 


Abbildung 13.3.1
 

  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
import info1.*;
public class EqualsDemo3{

  public static void main (String args[]) {
      String text1 = new String();
      text1 = Console.in.readWord();
      String text2 = new String();
      text2 = text1;
      boolean gleich1 = text1==text2;
      System.out.println(gleich1);
      boolean gleich2 = text1.equals(text2);
      System.out.println(gleich2);
  }
}
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:
 


Abb. 13.3.2

Hinweis Die Aufgabe 4 in 13.4 Übungen führt das Thema noch etwas weiter.
   
zur Startseite www.pohlig.de  (C) MPohlig 2005