Die Einteilung der Variablen kann nach verschiedenen Kategorien erfolgen:
- Zugriffsmodifikatoren: Mit den Zugriffsmodifikatoren wird festgelegt, wo eine Klassen- oder Instanzvariable sichtbar ist.
- private – innerhalb der Klasse sichtbar
- protected – innerhalb der Vererbungshierarchie sichtbar
- public – keine Einschränkung der Sichtbarkeit
- Ist kein Modifikator angegeben, ist die Variable im Paket sichtbar.
Mehr dazu findest du im Artikel “Wie wird ein Scope in Java definiert?” in unserer FAQ.
- Global / Local: Neben den Zugriffsmodifikatoren ist die Sichtbarkeit einer Variable dadurch bestimmt, ob sie innerhalb oder außerhalb einer Methode deklariert wird.
- Global – Eine globale Variable wird außerhalb von Methoden deklariert und als Instanz- oder Klassenvariable bezeichnet. Die Lebensdauer einer Instanzvariable entspricht der Lebensdauer des Objekt, in dem die Variable deklariert wurde.
- Local – Eine lokale Variable wird innerhalb eines Blocks deklariert und ist nur innerhalb dieses Blocks sichtbar. Die Lebensdauer einer lokalen Variable endet mit der Ausführung des Blocks, in dem sie deklariert wurde.
Mehr dazu findest du im Artikel “Was ist der Unterschied zwischen einer lokalen und einer globalen Variable?” in unserer FAQ.
- Zugehörigkeit
- Klasse – Klassenvariable, static-Variable
- Objekt – Instanzvariable
Mehr dazu findest du im Artikel “Was sind Instanzvariablen? Was sind Klassenvariablen?” in unserer FAQ.
- Typ
- primitiv – int, char, double, …
- Referenz – Object, String, List, Array, …
Mehr dazu findest du im Artikel “Was ist der Unterschied zwischen einem Referenzdatentyp und einem Wertdatentyp?” in unserer FAQ.
Anmerkungen:
- Konstanten werden oft als final-Variablen bezeichnet. Eine mit dem Modifikator final deklarierte Variable muss initialisiert werden und kann danach ihren Wert nicht mehr ändern.
- Mit dem Schlüsselwort transient deklarierte Variablen werden bei der Serialisierung von Objekten nicht gespeichert.