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
- Methoden und Parameter definieren
- Rückgabewerte und Überladen
- Gültigkeitsbereich und Lebensdauer