Ho una classe e in quella classe ho questo:
//some code
private int[] data = new int[3];
//some code
Quindi nel mio costruttore:
public Date(){
data[0] = 0;
data[1] = 0;
data[2] = 0;
}
Se lo faccio, va tutto bene. I valori dei dati predefiniti vengono inizializzati ma se invece faccio questo:
public Date(){
int[] data = {0,0,0};
}
Dice:
Local variable hides a field
Perché?
Qual è il modo migliore per inizializzare un array all'interno del costruttore?
datadopo"//some code"sta avendo un ambito dell'intera classe. mentre la variabiledatanel costruttore ha uno scope all'interno del costruttore. e una volta che il costruttore è fatto, la variabile verrà distrutta. E anche ladatavariabile all'interno del costruttore nasconde la variabile con lo stesso nome nella classe. Questo giustifica l'erroreLocal variable hides a field