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
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 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
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 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