Dichiarazione variabile non è dichiarare "valore" a una variabile; è per dichiarare il tipo della variabile.
L'assegnazione è semplicemente la memorizzazione di un valore in una variabile.
L'inizializzazione è l'assegnazione di un valore a una variabile al momento della dichiarazione.
Queste definizioni si applicano anche ai campi.
int i; // simple declaration
i = 42 // simple assignment
int[] arr = { 1, 2, 3 };
// declaration with initialization, allows special shorthand syntax for arrays
arr = { 4, 5, 6 }; // doesn't compile, special initializer syntax invalid here
arr = new int[] { 4, 5, 6 }; // simple assignment, compiles fine
Tuttavia, va detto che "inizializzazione" ha anche una definizione più rilassato di "prima assegnazione ad una variabile", indipendentemente da dove avviene.
int i; // local variable declaration
if (something) i = 42;
System.out.println(i);
// compile time error: The local variable i may not have been initialized
Questo, tuttavia, compila:
int i; // the following also compiles if i were declared final
if (something) i = 42;
else i = 666;
System.out.println(i);
Qui i
possono essere "inizializzata" da due posizioni possibili, da semplici incarichi. Per questo motivo, se i
era un array, non è possibile utilizzare la sintassi abbreviata di inizializzatore di array speciale con questo costrutto.
Quindi, in pratica "inizializzazione" ha due possibili definizioni, a seconda del contesto:
- Nella sua forma più stretta, è quando un incarico è comboed con la dichiarazione.
- Esso consente, tra le altre cose, serie speciale scorciatoia inizializzatore sintassi
- Più in generale, è quando un'assegnazione viene fatta una prima variabile.
- Consente, tra l'altro, l'assegnazione di una variabile
final
in più posizioni.
- Il compilatore avrebbe fatto del suo meglio per assicurare che esattamente una di quelle assegnazioni può accadere, quindi "inizializzazione" il
final
variabile
C'è anche classe JVM-contesto e inizializzazione dell'istanza, inizializzazione dell'oggetto contesto OOP, ecc.
[Dichiarazione] (https://docs.oracle.com/javase/tutorial/java/javaOO/variables.html), [Inizializzazione] (https://docs.oracle.it/javase/tutorial/java/javaOO/initial.html), e [Assegnazione] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html) sono tutti inclusi in The Java Tutorials Trail : [Learning the Java Language] (https://docs.oracle.com/javase/tutorial/java/TOC.html). – jaco0646