zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Wenn

zahl = 32912;

ausgeführt wird, wird nichts Neues erzeugt. Ein Muster, das 32912 repräsentiert, wird in den Bits von zahl gespeichert.

Zwei Arten von Zuweisungsanweisungen

Beachtet, dass es zwischen diesen zwei Anweisungen einen grundsätzlichen Unterschied gibt:

zahl = 32912;

und

str   = new String( "Der Gingham Hund" );

In der ersten Anweisung ist zahl ein primitiver Typ, also stellt die Zuweisungsanweisung die Daten direkt in die Variable hinein.

In der zweiten Anweisung ist str eine Objektreferenzvariable (die einzige andere Möglichkeit), also wird zuerst ein Objekt erzeugt und danach eine Referenz auf das Objekt in die Variable hineingestellt.

Wichtiger Punkt: Eine Variable enthält niemals ein Objekt.

Es gibt nur primitive Variablen und Objektreferenzvariablen, und jede enthält eine bestimmte Art von Information:

Typ der VariablenInformation, die sie enthältWenn sie sich links vom "=" befindet
primitive VariableEnthält die aktuellen Daten.Vorherige Daten werden durch die neuen Daten ersetzt.
ReferenzvariableEnthält Informationen darüber wie das Objekt zu finden ist.Die alte Referenz wird durch die neue Referenz ersetzt.

Wie können die beiden Arten von Variablen auseinandergehalten werden? Leicht — wir werfen einen Blick darauf, wie die Variable deklariert ist. Wenn sie nicht als primitiver Typ deklariert wurde, ist es eine Objektreferenzvariable. Eine Variable wird ihren deklarierten Typ nicht ändern.


FRAGE 9:

Wie sind die folgenden Variablen deklariert? Wählt den richtigen Button.

Deklaration PrimitivObjektreferenz
int foo;
String st;
boolean flag;
Object obj;