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
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:
a
, b
und c
,
welche auf Objekte vom Typ Point
verweisen können.Point
-Objekt mit x=0 und y=0.a
.Point
-Objekt mit x=12 und y=45.b
.Point
-Objekt.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.
Was sind die Werte von x
und y
des dritten Point
-Objekts?