Tengo una clase y en esa clase tengo esto:
//some code
private int[] data = new int[3];
//some code
Luego en mi constructor:
public Date(){
data[0] = 0;
data[1] = 0;
data[2] = 0;
}
Si hago esto, todo está bien. Los valores de datos predeterminados se inicializan, pero si en cambio hago esto:
public Date(){
int[] data = {0,0,0};
}
Dice:
Local variable hides a field
¿Por qué?
¿Cuál es la mejor manera de inicializar una matriz dentro del constructor?
datadespués"//some code"tiene un alcance de toda la clase. mientras que la variabledataen el constructor tiene un alcance dentro del constructor. y una vez terminado el constructor, la variable será destruida. Y también ladatavariable dentro del constructor oculta la variable con el mismo nombre en la clase. Esto justifica el errorLocal variable hides a field