0Pricing
Java Academy · Lektion

Gültigkeitsbereich und Lebensdauer

Verstehen Sie, wo Variablen sichtbar sind (Gültigkeitsbereich) und wie lange sie existieren (Lebensdauer): Blöcke, Schleifen, Methoden, Felder, Überschattung und finale Parameter.

Gültigkeitsbereich und Lebensdauer ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 3 Lektionen.

Gültigkeitsbereich vs. Lebensdauer

Gültigkeitsbereich = wo ein Name bzw. eine Variable sichtbar ist. Lebensdauer = wie lange die Variable existiert. Sie sehen Block- und Schleifen-Gültigkeitsbereiche, lokale Variablen von Methoden, Klassenfelder und Regeln zur Namensüberdeckung.

Block-Gültigkeitsbereich

Block-Gültigkeitsbereich: Eine innerhalb geschweifter Klammern deklarierte Variable ist nur innerhalb dieser Klammern sichtbar.

public class Main {
  public static void main(String[] args) {
    int a = 10; // visible in main
    {
      int b = 20; // visible only inside this block
      System.out.println("inside block: a=" + a + ", b=" + b);
    }
    System.out.println("outside block: a=" + a);
    // System.out.println(b); // would NOT compile: b is out of scope
  }
}

Schleifen-Gültigkeitsbereich

Schleifen-Gültigkeitsbereich: Ein im for-Kopf deklarierter Schleifenindex ist nur innerhalb des Schleifenkörpers sichtbar.

public class Main {
  public static void main(String[] args) {
    for (int i = 0; i < 3; i = i + 1) {
      System.out.println("i in loop = " + i);
    }
    // System.out.println(i); // would NOT compile: i is scoped to the loop

    int j;
    for (j = 0; j < 2; j = j + 1) {
      System.out.println("j in loop = " + j);
    }
    System.out.println("j after loop = " + j); // OK: j declared outside
  }
}

Felder vs. lokale Variablen

Lebensdauer: Klassen- und statische Felder bleiben über mehrere Aufrufe hinweg bestehen; lokale Variablen werden bei jedem Aufruf neu erstellt und nach dem Ende der Methode verworfen.

public class Main {
  // static field (class-level): lives for the program lifetime
  static int counter = 0;

  static void tick() {
    int local = 100; // local: created each call, dies when method returns
    counter = counter + 1;
    System.out.println("tick: counter=" + counter + ", local=" + local);
  }

  public static void main(String[] args) {
    tick();
    tick();
    tick();
    System.out.println("final counter=" + counter);
  }
}

Namensüberdeckung

Namensüberdeckung: Eine innere Deklaration, zum Beispiel ein Parameter oder eine lokale Variable, kann einen äußeren Namen mit demselben Bezeichner verbergen. Verwenden Sie ClassName.field oder this.field in Instanzmethoden, um auf das verborgene Feld zuzugreifen.

public class Main {
  static String label = "FIELD"; // class field

  static void demo(String label) { // parameter shadows field name
    System.out.println("param label = " + label); // uses parameter
    {
      String labelInner = "INNER"; // new name in inner block
      System.out.println("inner block labelInner = " + labelInner);
      System.out.println("still param label = " + label);
    }
    System.out.println("field via class name = " + Main.label); // refer to field explicitly
  }

  public static void main(String[] args) {
    demo("PARAM");
  }
}

Final & Wertübergabe

final-Parameter können nicht neu zugewiesen werden. In Java erfolgt die Wertübergabe: Eine Neuzuweisung des Parameters ändert die Variable des Aufrufers nicht.

public class Main {
  // final parameter cannot be reassigned inside the method
  static int inc(final int n) {
    // n = n + 1; // would NOT compile if uncommented
    return n + 1; // safe: return a new value
  }

  static void reassign(int x) {
    x = 999; // reassignes the local copy; caller variable is unchanged
  }

  public static void main(String[] args) {
    int a = 5;
    int b = inc(a);
    System.out.println("a=" + a + ", b=inc(a)=" + b);

    reassign(a);
    System.out.println("after reassign(a): a is still " + a);
  }
}

Prüfung von Gültigkeitsbereich und Lebensdauer

Kurzprüfung: Welche Aussage über Gültigkeitsbereich und Lebensdauer ist WAHR?

Zusammenfassung & Nächstes

Zusammenfassung: Sie haben den Gültigkeitsbereich von Blöcken und Schleifen, Felder im Vergleich zu lokalen Variablen, Namensüberdeckung und final-Parameter geübt. Als Nächstes wenden Sie sich in A2.2 Entwurfs- und Wiederverwendungsmustern zu.

Häufig gestellte Fragen

Ist die Lektion „Gültigkeitsbereich und Lebensdauer“ kostenlos?

Ja — der vollständige Text von „Gültigkeitsbereich und Lebensdauer“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Gültigkeitsbereich und Lebensdauer“?

Verstehen Sie, wo Variablen sichtbar sind (Gültigkeitsbereich) und wie lange sie existieren (Lebensdauer): Blöcke, Schleifen, Methoden, Felder, Überschattung und finale Parameter. Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Java Academy zu starten?

Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 3.

Wie lange dauert die Lektion „Gültigkeitsbereich und Lebensdauer“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?

Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Methoden und Parameter definieren
  2. Rückgabewerte und Überladen
  3. Gültigkeitsbereich und Lebensdauer
← Zurück zu Java Academy