Deklarationen ohne Initialisierung in Java
Die Festlegung eines Wertes in der Deklaration darf auch entfallen, da diese durch eine Zuweisung nachgeholt werden kann.
- Variablendeklaration [Syntaxdiagramm]
Variablendeklaration
.----------------. .--------------------------------.
| | | |
| .-----. v .-----. .------------. | .-. .--------------. v
---'--->( final )---'--->| Typ |--->| Bezeichner |---'--->( = )--->| Wertausdruck |---'--->
'-----' '-----' '------------' '-' '--------------'Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ int i;
i = 3;
java.lang.System.out.println( i ); }}transcript
3
»final«
Wenn eine Variable mit »final« deklariert wird, so kann ihr nur einmal ein Wert zugewiesen werden, dies kann entweder in der Deklaration oder später mit einem Zuweisungsausdruck erfolgen.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final int v = 7; /* erste Zuweisungsoperation fuer v */
java.lang.System.out.println( v );
final int w;
w = 2; /* erste Zuweisungsoperation fuer w */
java.lang.System.out.println( w ); }}transcript
7
2
Nicht-Initialisierung
Variablen ohne ausdrückliche Initialisierung gelten als nicht-initialisiert, solange wie ihnen noch kein Wert zugewiesen wurde. Nicht-initialisierte Variablen dürfen nicht verwendet werden.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ int i;
java.lang.System.out.println( i ); }}- Konsole (übersetzt)
Main.java:36: Fehler: Variable i ist möglicherweise nicht initialisiert
java.lang.System.out.println( i ); }}
(Das Wort „möglicherweise“ in der Fehlermeldung drückt aus, daß der Compiler nicht behauptet, daß »i« bei jeder Programmausführung nicht initialisiert ist, sondern nur, daß es bei einigen Ausführungen nicht initialisiert sein könnte. Im speziellen Falle des obenstehenden Programmes ist »i« aber bei jeder Programmausführung nicht initialisiert.)