Eine gute Antwort wäre:

In diesem Programm, ja. Aber Sie sollten generell den == -Operator verwenden, wenn Sie auf Gleichheit der Referenzen abfragen.

Äquivalenz von Aliasen

Hier ist (noch einmal!) das Beispielprogramm mit dieser Änderung:

import java.awt.*;
class EqualsDemo4
{
  public static void main ( String arg[] )
  {
    Point pointA = new Point( 7, 99 );     // pointA verweist auf ein Point-Objekt
    Point pointB = pointA;                 // pointB verweist auf dasselbe Objekt

    if ( pointA.equals( pointB ) )
    {
      System.out.println("Die zwei Variablen verweisen auf dasselbe Objekt,");
      System.out.println("oder auf verschiedene Objekte mit gleichen Daten.");
    }
    else
      System.out.println("Die zwei Variablen verweisen auf verschiedene Objekte");

  }
}

Die Abbildung der Situation ist die gleiche wie zuvor. Aber jetzt wird die equals() Methode verwendet.

  1. Sie verwendet die Referenz von pointA, um x und y von diesem Objekt zu bekommen.
  2. Sie verwendet die Referenz von pointB, um x und y von diesem Objekt zu bekommen.
  3. Sie bestimmt, dass beide x-Werte gleich sind und das beide y-Werte gleich sind.
  4. Sie gibt true zurück.

Die Tatsache, dass das Objekt in Schritt 1 und Schritt 2 dasselbe ist, spielt keine Rolle. Die x, die überprüft werden, sind die gleichen und die y, die überprüft werden, sind die gleichen, also ist das Ergebnis wahr.

FRAGE 21:

Wenn der == -Operator true zurückgibt, wird dann die equals() Methode true zurückgeben, immer?

Inhaltsverzeichnis