zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Es gibt zwei Objekte, jedes mit einer eindeutigen Referenz. Es gibt zwei Referenzvariablen, jede enthält eine andere Referenz.

Gleichheit des Inhalts von Referenzvariablen

Der == -Operator sieht nach dem Inhalt der beiden Referenzvariablen. Wenn der Inhalt beider Referenzvariablen der gleiche ist, dann ist das Ergebnis true. Andernfalls ist das Ergebnis false.

Da jedes Objekt eine eindeutige Referenz hat, stellt der Operator fest, ob zwei Referenzvariablen auf ein und dasselbe Objekt verweisen.

Der == -Operator sieht NICHT nach Objekten. Er betrachtet nur Referenzen (Information darüber, wo ein Objekt aufzufinden ist.)

Hier ist ein Teil des vorherigen Programms mit einer zusätzlichen if-Anweisung:

  String strA;  // Referenz auf das 1. Objekt
  String strB;  // Referenz auf das 2. Objekt

  strA = new String(
    "Der Gingham Hund"); // 1. Objekt erzeugen und
                           //  Referenz speichern.

  System.out.println(
    strA); // Referenz des 1. Objekts
           // folgen und Daten ausgeben.

  strB = new String(
    "Die Calico Katze"); // 2. Objekt erzeugen und
                         // Referenz speichern.

  System.out.println(
      strB); // Referenz des 2. Objekts
             // folgen und Daten ausgeben.

  System.out.println( strB );

  if ( strA == strB )
      System.out.println(
        "Das wird nicht ausgegeben.");

Da die Referenz in strA anders ist als die Referenz in strB, ist

strA == strB

false. (Betrachtet die Abbildung der vorherigen Seite.) Die dritte Ausgabeanweisung wird nicht ausgeführt.


FRAGE 14:

Betrachtet der == -Operator den Inhalt der Objekte, wenn die if-Anweisung ausgeführt wird?

zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite