Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| programmierung:lokal-global-variables [2024/09/04 10:08] – swe | programmierung:lokal-global-variables [2025/12/20 14:53] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ===== Lokale Variablen ===== | + | # Gültigkeitsbereich (Scope) |
| - | ===== Lokale | + | Der **Gültigkeitsbereich** oder **Scope** einer Variablen |
| + | welchem Teil des Codes die Variable sichtbar und nutzbar ist. In Java | ||
| + | gibt es verschiedene Arten von Gültigkeitsbereichen: | ||
| - | - **Definition**: Variablen, die innerhalb einer Methode oder eines Blocks deklariert werden.\\ | + | 1. |
| - | - **Sichtbarkeit**: Nur innerhalb der Methode oder des Blocks, in dem sie deklariert | + | |
| - | - **Lebensdauer**: Existieren nur während der Ausführung der Methode oder des Blocks. | + | 2. |
| - | ===== Globale Variablen (Instanz- und Klassenvariablen) ===== | + | einer Klasse |
| + | 3. | ||
| + | alles innerhalb von Klassen definiert wird. | ||
| - | ===== Globale Variablen (Instanz- und Klassenvariablen) ===== | + | **Beispiel mit `for`-Schleifen** |
| - | - **Definition**: | + | In `for`-Schleifen ist der Scope der Schleifenvariablen auf den |
| - | - **Instanzvariablen**: | + | Schleifenblock beschränkt. Hier ein einfaches Beispiel: |
| - | | + | |
| - | - **Sichtbarkeit**: | + | |
| - | **Beispielcode** | + | ```java |
| + | public class ScopeExample { | ||
| + | public static void main(String[] args) { | ||
| + | for (int i = 0; i < 5; i++) { | ||
| + | System.out.println(" | ||
| + | } | ||
| + | // System.out.println(i); | ||
| + | } | ||
| + | } | ||
| + | ``` | ||
| - | download | + | In diesem Beispiel ist die Variable `i` nur innerhalb der `for`-Schleife |
| + | sichtbar. Wenn du versuchst, `i` außerhalb der Schleife zu verwenden, | ||
| + | erhältst du einen Kompilierungsfehler, | ||
| + | Gültigkeitsbereichs liegt. | ||
| - | <code java> | + | **Verschachtelte `for`-Schleifen** |
| - | public class VariableExample { | + | |
| - | // Globale Variable (Instanzvariable) | + | |
| - | private int globalCounter = 0; | + | |
| - | // Globale Variable (Klassenvariable) | + | Auch in verschachtelten `for`-Schleifen hat jede Schleifenvariable |
| - | private static int globalStaticCounter = 0; | + | ihren eigenen Scope: |
| - | + | ||
| - | public void demonstrateLocalVariable() { | + | |
| - | // Lokale Variable | + | |
| - | int localCounter = 0; | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | globalCounter++; | + | |
| - | globalStaticCounter++; | + | |
| - | System.out.println(" | + | |
| - | System.out.println(" | + | |
| - | System.out.println(" | + | |
| - | } | + | |
| - | } | + | |
| + | ```java | ||
| + | public class NestedLoopExample { | ||
| public static void main(String[] args) { | public static void main(String[] args) { | ||
| - | | + | for (int i = 0; i < 3; i++) { |
| - | example.demonstrateLocalVariable(); | + | |
| - | + | System.out.println(" | |
| - | // Zugriff auf die Klassenvariable ohne Instanz | + | } |
| - | | + | |
| - | | + | |
| - | System.out.println(" | + | |
| } | } | ||
| } | } | ||
| } | } | ||
| + | ``` | ||
| + | |||
| + | Hier haben `i` und `j` jeweils ihren eigenen Scope innerhalb der | ||
| + | jeweiligen Schleifen. Du kannst `i` und `j` außerhalb ihrer Schleifen | ||
| + | nicht verwenden. | ||
| - | </code> | + | \<WRAP center round important 60%\> |
| - | **Erklärung** \\ - **Lokale Variable** | + | 1. |
| + | einer `for`-Schleife | ||
| + | Schleife | ||
| + | 2. **Wiederverwendung von Variablennamen**: Du kannst denselben | ||
| + | Variablennamen in verschiedenen Schleifen verwenden, da jede | ||
| + | Schleife ihren eigenen Scope hat. | ||
| + | \</ | ||