zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

(Denkfrage: ) Könnten zwei verschiedene Objekte äquivalente (gleiche) Daten enthalten?

Antwort:

Ja. Die Objekte würden aus verschiedenen Speicherbytes konstruiert werden, aber die gleichen Werte enthalten.

Zwei Objekte mit äquivalenten Inhalten

class StringBsp6
{
  public static void main ( String[] args )
  {
    String strA; // Referenz auf das 1. Objekt
    String strB; // Referenz auf das 2. Objekt

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

    System.out.println(strA);

    strB = new String(
      "Der Gingham Hund"); // 2. Objekt erzeugen
                           // Referenz speichern
    System.out.println(strB);
    if ( strA == strB )
      System.out.println(
        "Das wird nicht ausgegeben werden.");

   }
}

Erinnert Euch daran, dass Objekte (1) Identität, (2) Zustand und (3) Verhalten haben. Identität bedeutet, dass jedes Objekt ein eindeutiges Ganzes ist, ganz gleich wie sehr es einem anderen gleicht. Hier ist ein Programm, das diese Situation zeigt:

In diesem Programm gibt es zwei Objekte, jedes ist ein eindeutiges Ganzes.

Jedes Objekt enthält Daten, die äquivalent zu denen des Anderen sind. Jedes Objekt besteht aus einem Teil Arbeitsspeicher, der unabhängig von dem ist, der das andere Objekt ausmacht.

Die Variable strA enthält eine Referenz auf das erste Objekt und die Variable strB enthält eine Referenz auf das zweite Objekt.

Da die Information in strA von der Information in strB verschieden ist, ist

( strA == strB )

false, (genau wie in dem vorherigen Programm mit zwei Objekten.) Da es zwei Objekte gibt, gemacht aus zwei verschiedenen Abschnitten des Arbeitsspeichers, unterscheidet sich die Referenz, die in strA gespeichert ist, von der Referenz in strB. Es spielt keine Rolle, dass die Daten innerhalb der Objekte gleich sind.


FRAGE 18:

Was wird dieses Beispielprogramm auf dem Bildschirm ausgeben?

zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite