**This is an old revision of the document!**
Lokale Variablen
- Definition: Variablen, die innerhalb einer Methode oder eines Blocks deklariert werden.\
- Sichtbarkeit: Nur innerhalb der Methode oder des Blocks, in dem sie deklariert wurden.\
- Lebensdauer: Existieren nur während der Ausführung der Methode oder des Blocks.
Globale Variablen (Instanz- und Klassenvariablen)
- Definition: Variablen, die außerhalb von Methoden, aber innerhalb einer Klasse deklariert werden.\
- Instanzvariablen: Werden ohne das Schlüsselwort
staticdeklariert.\ - Klassenvariablen: Werden mit dem Schlüsselwort
staticdeklariert.\
- Sichtbarkeit: Abhängig von den Zugriffsmodifikatoren (
private,protected,public), aber generell innerhalb der gesamten Klasse.\ - Lebensdauer: Existieren während der gesamten Lebensdauer der Instanz (bei Instanzvariablen) oder der Klasse (bei Klassenvariablen).\
Beispielcode
download
public class VariableExample { // Globale Variable (Instanzvariable) private int globalCounter = 0; // Globale Variable (Klassenvariable) private static int globalStaticCounter = 0; public void demonstrateLocalVariable() { // Lokale Variable int localCounter = 0; for (int i = 0; i < 5; i++) { localCounter++; globalCounter++; globalStaticCounter++; System.out.println("Local Counter: " + localCounter); System.out.println("Global Counter: " + globalCounter); System.out.println("Global Static Counter: " + globalStaticCounter); } } public static void main(String[] args) { VariableExample example = new VariableExample(); example.demonstrateLocalVariable(); // Zugriff auf die Klassenvariable ohne Instanz for (int i = 0; i < 5; i++) { globalStaticCounter++; System.out.println("Global Static Counter in main: " + globalStaticCounter); } } }
Erklärung
- Lokale Variable
localCounterwird innerhalb der MethodedemonstrateLocalVariabledeklariert und ist nur dort sichtbar.\ - Instanzvariable
globalCounterist innerhalb der gesamten Klasse sichtbar und wird bei jeder Instanz der KlasseVariableExampleseparat gehalten.\ - Klassenvariable
globalStaticCounterist ebenfalls innerhalb der gesamten Klasse sichtbar, aber es gibt nur eine Kopie dieser Variable, die von allen Instanzen der Klasse geteilt wird.