2.3.1 | Deklarationen in Blöcken |
In jedem Anweisungsblock können Variablen oder auch lokale Klassen vereinbart werden. Diese Vereinbarungen gelten nur lokal in diesem Block.
Eine lokale Variable ist nicht in den übergeordneten Blöcken verfügbar. Wenn es in einem übergeordneten Block eine Variable gibt, die denselben Bezeichner wie eine lokale Variable hat, wird Erstere durch die lokale Variable verdeckt. Das folgende Beispiel verdeutlicht diesen Zusammenhang:int x = 0; { // Das erste x wird jetzt verdeckt int x; x = 5; } System.out.println(x);Weil die Variable im äußeren Block durch die im Inneren verdeckt wird, wirkt sich die Wertzuweisung nicht auf die äußere Variable aus. Daher wird 0 ausgegeben.
Variablen und Klassen, die lokal deklariert sind, dürfen nicht als static oder mit einer Zugriffsklasse vereinbart werden. Der Zusatz final ist dagegenseit Version 1.1 erlaubt, wodurch die Vereinbarung lokaler Konstanten ermöglicht wird.