Eine gute Antwort könnte sein:

Angenommen, dass das Programm soeben in den Arbeitsspeicher geladen wurde und gerade dabei ist zu starten:

Wie viele Referenzvariablen gibt es?    3
Wie viele Objekte gibt es?    Null

Instanziieren der Point-Objekte

Hier ist eine Abbildung der Variablen in dem Moment in dem das Programm gerade gestartet ist. Es wurden noch keine Objekte instantiiert (erzeugt), so dass die Referenzvariablen a, b und c noch auf kein Objekt verweisen. Um das zu betonen wurden die Objektboxen, die die einzelnen Variablen repräsentieren, mit einem Schrägstrich dargestellt.

Hier ist noch mal das Programm:

import java.awt.*;      // Klassenbibliothek importieren, in der Point definiert ist
class PointBsp1
{

  public static void main ( String arg[] )
  {
    Point a, b, c;              // Referenzvariablen

    a = new Point();            // einen Point erzeugen bei ( 0, 0 );
                                // Referenz in "a" speichern
    b = new Point( 12, 45 );    // einen Point erzeugen bei ( 12, 45 );
                                // Referenz in "b" speichern
    c = new Point( b );         // einen Point erzeugen, der dieselben Daten enthält
                                // wie die Daten, die durch "b" referenziert werden
  }
}

Dieses Programm:

  1. Deklariert drei Referenzvariablen a, b und c, welche auf Objekte vom Typ Point verweisen können.
  2. Instantiiert ein Point-Objekt mit x=0 und y=0.
    (Die Dokumentation sagt uns, dass ein Konstruktor ohne Parameter x und y mit null initialisiert.)
  3. Speichert die Referenz in der Variablen a.
  4. Instantiiert ein Point-Objekt mit x=12 und y=45.
  5. Speichert die Referenz in der Variablen b.
  6. Instantiiert ein drittes Point-Objekt.
  7. Speichert die Referenz in der Variablen c.

Sobald jedes Point-Objekt instantiiert ist, ist es gleich jedem anderen (mit Ausnahme der Datenwerte). Es ist egal welcher Konstruktor benutzt wurde um es zu instanziieren.

FRAGE 5:

Was sind die Werte von x und y des dritten Points?