Gültigkeitsbereich (Scope)

**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 static deklariert.
    • Klassenvariablen: Werden mit dem Schlüsselwort static deklariert.
  • 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

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 localCounter wird innerhalb der Methode demonstrateLocalVariable deklariert und ist nur dort sichtbar.
  • Instanzvariable globalCounter ist innerhalb der gesamten Klasse sichtbar und wird bei jeder Instanz der Klasse VariableExample separat gehalten.
  • Klassenvariable globalStaticCounter ist ebenfalls innerhalb der gesamten Klasse sichtbar, aber es gibt nur eine Kopie dieser Variable, die von allen Instanzen der Klasse geteilt wird.