J'ai une classe et dans cette classe j'ai ceci:
//some code
private int[] data = new int[3];
//some code
Puis dans mon constructeur:
public Date(){
data[0] = 0;
data[1] = 0;
data[2] = 0;
}
Si je fais cela, tout va bien. Les valeurs de données par défaut sont initialisées mais si je le fais à la place:
public Date(){
int[] data = {0,0,0};
}
Ça dit:
Local variable hides a field
Pourquoi?
Quelle est la meilleure façon d'initialiser un tableau à l'intérieur du constructeur?
dataaprès a"//some code"une portée de la classe entière. tandis que la variabledatadans le constructeur a une portée à l'intérieur du constructeur. et une fois le constructeur terminé, la variable sera détruite. Et aussi ladatavariable à l'intérieur du constructeur masque la variable du même nom dans la classe. Cela justifie l'erreurLocal variable hides a field