Einfühung

Lokale Variablen sind grundlegende Bausteine in der objektorienterten Programmierung. Sie dienen dazu, Daten temporär zu speichern, die nur innerhalb eines begrenzten Code-Abschnitts – ihres Gültigkeitsbereichs (Scope) – benötigt werden.

 

Das Konzept der lokalen Variablen ist entscheidend für die Kapselung und Übersichtlichkeit von Codes, da es sicherstellt, dass Variablen nur dort verwendet werden, wo sie wirklich benötigt werden. Hierdurch wird auch unnötiger Speicherverbrauch minimiert.

Eine lokale Variable ist eine Variable, die:

  • Innerhalb einer Methode, eines Konstruktors oder eines Blocks (z. B. einer for-Schleife oder if-Anweisung) deklariert wird.
  • Nur innerhalb des Blocks zugänglich ist, in dem sie definiert wurde. Man spricht vom Scope der Variablen. Außerhalb dieses Blocks "existiert" die Variable nicht und kann nicht verwendet werden.
  • Vor ihrer ersten Verwendung initialisiert werden muss (im Gegensatz zu Instanz- und Klassenvariablen, die Standardwerte erhalten).

Deklaration und Initialisierung

Die Deklaration und optionale Initialisierung einer lokalen Variablen erfolgt wie folgt:

JavaDatentyp Variablenname; // Deklaration Datentyp Variablenname = Wert; // Deklaration und Initialisierung

beispielMethode() {
    int ergebnis; // Deklaration
    
    // System.out.println(ergebnis); // FEHLER: Lokale Variable wurde nicht initialisiert!
    
    ergebnis = 5 + 3; // Initialisierung
    System.out.println(ergebnis); // OK
}

Gültigkeitsbereich (Scope)

Der Gültigkeitsbereich ist das wichtigste Merkmal lokaler Variablen und wird durch geschweifte Klammern ({ }) definiert.

Beispiel 1

class Beispiel {
    public static void main(String[] args) {
        int zahl1 = 10; // Lokale Variable der main-Methode
        
        if (zahl1 > 5) {
            int zahl2 = 20; // Lokale Variable des if-Blocks
            System.out.println("Innerhalb des Blocks: " + zahl2); 
        } // <--- zahl2 ist hier nicht mehr gültig!

        // System.out.println(zahl2); // FEHLER: Symbol 'zahl2' nicht gefunden!
        System.out.println("In der main-Methode: " + zahl1); 
    } // <--- zahl1 ist hier nicht mehr gültig!
}

Beispiel 2

 for-SchleifeJavapublic void schleifenBeispiel() {
    for (int i = 0; i < 5; i++) {
        // 'i' ist nur innerhalb des Schleifenkörpers gültig
        System.out.println("Zähler: " + i);
    } 
    // System.out.println(i); // FEHLER: 'i' ist außerhalb der Schleife unbekannt
}

Abgrenzung

Vergleich: Variablen-Typen in Java
Eigenschaft Lokale Variable Instanzvariable (Attribut) Klassenvariable (static)
Deklaration Innerhalb einer Methode/eines Blocks. Innerhalb der Klasse, außerhalb von Methoden. Innerhalb der Klasse, außerhalb von Methoden, mit static.
Initialisierung Muss vor Verwendung manuell erfolgen. Erhält Standardwert (z. B. 0 für int, null für Objekte). Erhält Standardwert.
Scope Nur innerhalb des deklarierenden Blocks. Überall in der Klasse (mit Zugriff auf ein Objekt). Überall in der Klasse (direkt über den Klassennamen).
Lebensdauer Existiert nur, solange der Block ausgeführt wird. Existiert, solange das Objekt existiert. Existiert, solange das Programm läuft.