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?