Java Initialiser un tableau int dans un constructeur

J'ai une classe et dans la classe que j'ai ceci:

 //some code
 private int[] data = new int[3];
 //some code

Ensuite dans mon constructeur:

public Date(){
    data[0] = 0;
    data[1] = 0;
    data[2] = 0;
}

Si je fais cela, tout est OK. De données par défaut les valeurs sont initialisées mais si je place ce faire:

public Date(){
    int[] data = {0,0,0};
}

Il dit:

Local variable hides a field

Pourquoi?

Quel est le meilleur moyen d'initialiser un tableau à l'intérieur du constructeur?

grâce

  • J'espère que vous êtes conscient de la notion de portée de variable? votre variable data après "//some code" est d'avoir un champ d'application de l'ensemble de la classe. tandis que la variable data dans le constructeur est d'avoir un champ d'application dans le constructeur. et une fois que le constructeur est fait, la variable sera détruit. Et aussi le data variable à l'intérieur de constructeur masque la variable de même nom dans la classe. Cela justifie l'erreur Local variable hides a field
InformationsquelleAutor Favolas | 2011-11-09