Konstantendeklarationen in Java
Die Definition einer Konstante wird in Java als Deklaration einer Konstante bezeichnet.
Konzeptuell gesehen wird durch eine Konstantendeklaration ein Bezeichner für einen Wert vereinbart.
Die folgenden Produktionen sind gegenüber der Sprachdefinition vereinfacht oder geringfügig verändert worden.
- 〈ConstantDeclaration 〉 ::=
- "final" ["static"] 〈Type 〉 〈VariableDeclarators 〉 ";".
- 〈Type 〉 ::=
- "boolean" | "int" | "double".
- 〈VariableDeclarators 〉 ::=
- 〈VariableDeclarator 〉 |
〈VariableDeclarators 〉 "," 〈VariableDeclarator 〉. - 〈VariableDeclarator 〉 ::=
- 〈Identifier 〉 ["=" 〈Expression 〉].
Eine Konstantendeklaration besteht also aus einem optionalen Modifikator "static" und einer Typangabe 〈Type 〉, der ein Variablen-Deklarator 〈VariableDeclarator 〉 folgt oder mehrere durch Komma getrennte Konstantendeklaratoren 〈VariableDeclarator 〉 folgen. Die Konstantendeklaration endet schließlich mit einem Semikolon.
(Der Gebrauch von „Variablen -Deklarator“ für den Deklarator einer Konstanten ist hier kein Fehler, da die meisten Konstanten in Java als mit dem Modifizierer "final" gekennzeichnete sogenannte „Variablen“ auftreten. Nur in Schnittstellendeklarationen treten spezielle Konstantendeklaratoren auf, bei denen das Gleichheitszeichen nicht entfallen kann.)
Der optionale Modifizierer "static" und die Typangabe 〈Type 〉 beziehen sich auf alle folgenden Variablen-Deklaratoren. Der Konstantendeklarator 〈Identifier 〉 "=" 〈Expression 〉 legt den Bezeichner 〈Identifier 〉 der Konstanten fest und bestimmt ihren Wert als Wert des dem Gleichheitszeichen "=" folgenden Ausdrucks 〈Expression 〉.
Durch "final int v = 7;" wird beispielsweise ein Bezeichner (eine Konstante) "v" mit dem Typ "int" und dem Wert "7" vereinbart.
Eine Deklaration des Bezeichners "v"
.------------- <Type>
| .------- <VariableDeclarator>
| |
--- -----
final int v = 7;
Initialisierungen
Eine Initialisierung einer Konstanten kann durch den Variablen-Initialisierer des Variablen-Deklarators der Konstanten geschehen.
Konstantendefinition mit Initialisierer
.------- <Identifier>
| .--- <Expression>
| |
- -
final int v = 9;
Durch die Initialisierung wird der Wert der Konstante festgelegt.
Allerdings muß die Initialisierung einer Konstanten nicht immer durch einen Variablen-Deklarator erfolgen, da es dafür auch noch andere Möglichkeiten gibt. Daher können das Gleichheitszeichen und der Ausdruck auch weggelassen werden.
Konstantenverwendungen
Der Name einer Konstanten steht für den Wert der Konstanten.
Daher ist die Wirkung der Auswertung des Ausdrucks "System.out.print( v )" mit einer int-Konstante "v" die Ausgabe einer Darstellung des int -Wertes der int -Konstante "v". Der Ausdruck "v + 1" ist die Summe dieses Wertes von "v" und "1".
Mehrere Deklaratoren in einer Deklaration *
Es können mehrere Variablen-Deklaratoren durch Komma getrennt und (Feld-Modifizierern zusammen mit) einem Typ zugeordnet werden.
Eine Deklaration
.----------------- <Type>
| .------------ <VariableDeclarator>
| | .---- <VariableDeclarator>
| | |
--- ----- ------
final int v = 2, w = 91;
Die Deklaration "final int v = 2, w = 91;" hat die gleichen Folgen, wie die Folge der Deklarationen "final int v = 2; final int w = 91;".
Da die Verwendung mehrerer Variablen-Deklaratoren in einer Felddeklaration manchmal zu Mißverständnissen führen kann, sind im Zweifel mehrere Deklarationen mit nur jeweils einem Variablen-Deklarator vorzuziehen.