**This is an old revision of the document!**
Natürlich! Hier ist eine Übersicht über den Unterschied zwischen lokalen und globalen Variablen in Java, zusammen mit einem Beispielcode, der nur for-Schleifen enthält.
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
staticdeklariert. - Klassenvariablen: Werden mit dem Schlüsselwort
staticdeklariert.
- 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
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
localCounterwird innerhalb der MethodedemonstrateLocalVariabledeklariert und ist nur dort sichtbar. - Instanzvariable
globalCounterist innerhalb der gesamten Klasse sichtbar und wird bei jeder Instanz der KlasseVariableExampleseparat gehalten. - Klassenvariable
globalStaticCounterist ebenfalls innerhalb der gesamten Klasse sichtbar, aber es gibt nur eine Kopie dieser Variable, die von allen Instanzen der Klasse geteilt wird.
Hoffe, das hilft dir weiter! Hast du noch weitere Fragen zu Java?