tengo una clase y en esa clase tengo esto:Java inicializar una matriz int en un constructor
//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 . valores de datos por defecto se inicializan pero si en lugar de hacer 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?
gracias
espero que son conscientes del concepto de ámbito de variable? su variable 'data' after' "// some code" 'tiene un alcance de toda la clase. mientras que la variable 'data' en el constructor tiene un alcance dentro del constructor. y una vez que el constructor termina, la variable se destruirá. Y también la variable 'data' dentro del constructor oculta la variable con el mismo nombre en la clase. Esto justifica el error 'La variable local oculta un campo' –