Eu tenho uma aula e nessa aula eu tenho isso:
//some code
private int[] data = new int[3];
//some code
Então, no meu construtor:
public Date(){
data[0] = 0;
data[1] = 0;
data[2] = 0;
}
Se eu fizer isso, tudo ficará bem. Os valores de dados padrão são inicializados, mas se eu fizer isso:
public Date(){
int[] data = {0,0,0};
}
Diz:
Local variable hides a field
Por quê?
Qual é a melhor maneira de inicializar um array dentro do construtor?
datadepois de"//some code"ter um escopo de toda a classe. enquanto a variáveldatano construtor tem um escopo dentro do construtor. e assim que o construtor estiver pronto, a variável será destruída. E também adatavariável dentro do construtor oculta a variável com o mesmo nome na classe. Isso justifica o erroLocal variable hides a field