zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

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?    0

Instanziieren der Point-Objekte

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

Hier ist noch einmal das Programm:

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

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

    a = new Point();            // ein Point-Objekt erzeugen bei ( 0, 0 );
                                // Referenz in "a" speichern
    b = new Point( 12, 45 );    // ein Point-Objekt erzeugen bei ( 12, 45 );
                                // Referenz in "b" speichern
    c = new Point( b );         // ein Point-Objekt erzeugen,
                                // das die gleichen Daten enthält
                                // wie die, 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. Instanziiert ein Point-Objekt mit x=0 und y=0.
    (Die Dokumentation sagt uns, dass ein parameterloser Konstruktor x und y mit 0 initialisiert.)
  3. Speichert die erste Referenz in der Variablen a.
  4. Instanziiert ein weiteres Point-Objekt mit x=12 und y=45.
  5. Speichert diese Referenz in der Variablen b.
  6. Instanziiert ein drittes Point-Objekt.
  7. Speichert diese Referenz in der Variablen c.

Sobald jedes Point-Objekt instanziiert ist, ist es gleich jedem anderen Point-Objekt (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 Point-Objekts?