Angenommen, dass itemA == itemB und, dass itemB == itemC. Wie viele Objekte gibt es?

Eine gute Antwort könnte sein:

Genau ein Objekt (und drei Referenzvariablen, von denen jede auf es verweist.)

Die equals() Methode

Sie haben bereits die equals( String ) Methode der Klasse String gesehen.

Die equals( String ) Methode der Klasse String überprüft, ob zwei Strings die gleichen Zeichen enthalten.

Die equals( String ) Methode betrachtet Objekte. Sie ermittelt "Äquivalenz". Der == -Operator ermittelt "Identität". Zum Beispiel,

String strA;  // erstes Objekt
String strB;  // zweites Objekt

strA   = new String( "Der Gingham Hund" );
strB   = new String( "Der Gingham Hund" );

if ( strA.equals( strB  )  )
  System.out.println( "Dies WIRD ausgegeben.");

if ( strA == strB )
  System.out.println( "Dies wird NICHT ausgegeben.");

In diesem Beispiel sind zwei Objekte (jedes Objekt hat seine eigene Identität, also meldet == falsch). Jedes Objekt enthält äquivalente Daten (als meldet equals() wahr).

FRAGE 19:

Wenn Sie von einem Blatt Papier eine Fotokopie machen würden, hätten Sie zwei Blatt Papier.

  1. Sind Papierblätter einzelne Objekte?
  2. Ist das erste Blatt == mit dem zweiten Blatt?
  3. Sind die Daten eines jeden Blattes die gleichen, als die des anderen?
  4. Ist das erste Blatt equals() mit dem zweiten Blatt?