Können verschiedene Objekte derselben Klasse in einem Programm zur selben Zeit existieren?
Ja. Natürlich um zu jedem zu gelangen, muss jedes eine Referenz haben.
Hier ist eine weitere Version des Beispielprogramms:
class BspString4
{
public static void main ( String[] args )
{
String strA; // Referenz auf das erste Objekt
String strB; // Referenz auf das zweite Objekt
strA = new String( "Der Gingham Hund" ); // Das erste Objekt erzeugen und
// seine Referenz speichern.
System.out.println( strA ); // Der Referenz auf das erste
// Objekt folgen und Daten ausgeben.
strB = new String( "Die Calico Katze" ); // Das zweite Objekt erzeugen und
// seine Referenz speichern.
System.out.println( strB ); // Der Referenz auf das zweite
// Objekt folgen und Daten ausgeben.
System.out.println( strA ); // Der Referenz auf das erste
// Objekt folgen und Daten ausgeben.
}
}
|
Das Programm hat zwei Referenzvariablen, strA und strB.
Es erzeugt zwei Objekte und stellt jede der Referenzen in eine der Variablen.
Da jedes Objekt seine eigene Referenzvariable hat,
geht keine Referenz verloren und kein Objekt wird Garbage.
(Bis das Programm aufgehört hat zu laufen.)