Declaración no es declarar "valor" a una variable; es para declarar tipo de la variable.
La asignación es simplemente el almacenamiento de un valor a una variable.
La inicialización es la asignación de un valor a una variable en el momento de la declaración.
Estas definiciones también se aplican a los campos.
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
Sin embargo, se debe mencionar que "inicialización" también tiene una definición más relajado de "la primera asignación a una variable", independientemente del lugar en que sucede.
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
Esto, sin embargo, compila:
int i; // the following also compiles if i were declared final
if (something) i = 42;
else i = 666;
System.out.println(i);
Aquí i
puede "iniciada" desde dos ubicaciones posibles, por las tareas simples. Por eso, si i
era una matriz, no puede usar la sintaxis abreviada de inicializador de matriz especial con esta construcción.
Así que, básicamente "inicialización" tiene dos definiciones posibles, dependiendo del contexto:
- En su forma más estrecha, es cuando una misión se comboed con la declaración.
- Permite, entre otras cosas, serie especial de los de sintaxis abreviada inicializador
- De manera más general, que es cuando se realiza una asignación primero en una variable.
- Permite, entre otras cosas, asignaciones a una variable
final
en varios lugares.
- El compilador hará todo lo posible para asegurarse de que exactamente una de esas tareas puede suceder, por lo tanto "inicializar" el
final
variables
También hay clases JVM-contexto e inicialización de instancia, inicialización de objeto de contexto de OOP, etc.
[Declaración] (https://docs.oracle.com/javase/tutorial/java/javaOO/variables.html), [Inicialización] (https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html), y [Assignment] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html) están todos incluidos en The Java Tutorials Trail : [Aprendiendo el lenguaje Java] (https://docs.oracle.com/javase/tutorial/java/TOC.html). – jaco0646