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

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 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.