Deklaration | Primitiv | Objektreferenz |
---|---|---|
int foo; | X | |
String st; | X | |
boolean flag; | X | |
Object obj; | X |
Betrachten wir noch einmal das Beispielprogramm. Wenn die Anweisung
System.out.println( str );
ausgeführt wird, wird das von str
referenzierte Objekt gefunden und seine Daten werden auf dem Bildschirm ausgegeben.
Wenn die Anweisung
System.out.println( zahl );
ausgeführt wird, wird der Wert der primitiven Variablen zahl
direkt verwendet.
(Er wird in Zeichen-Form umgewandelt und auf dem Bildschirm ausgegeben.)
Es gibt zwei Typen von Variablen. Wenn sie in einem Ausdruck (wie oben) verwendet werden, verhalten sie sich auf verschiedene Weise:
Charakteristika | Wenn in einem Ausdruck verwendet: | |
---|---|---|
primitive Variable | Feste Anzahl von Bits. Enthält die aktuellen Daten. | Verwendet die Daten in der Variablen. |
Referenzvariable | Enthält Informationen darüber wie das Objekt zu finden ist. | Verwendet die Information in der Variablen, um das Objekt zu finden. |
Wenn wir eine Variable deklarieren, sagen wir welchen Typ sie hat. Zum Beispiel:
String str;
sagt, dass str
eine Referenzvariable ist, die erwartet (später) eine Objektreferenz vom Typ String
zu enthalten.
Die Deklaration
long zahl;
sagt, dass zahl
eine Variable ist,
die den primitiven Datentyp long
enthält.
Wenn wir das Programm kompilieren,
teilen die Deklarationen dem Compiler mit, welcher Typ von Information in jeder Variablen enthalten ist. Also verwendet der Compiler jede Variable in der geeigneten Weise, jedes Mal wenn sie in unserem Programm genannt wird.
Angenommen, die folgende Anweisung würde in dem vorhergehenden Beispielprogramm stehen. Wäre sie korrekt?
str = zahl ;