Bir sınıfım var ve o sınıfta şuna sahibim:
//some code
private int[] data = new int[3];
//some code
Sonra kurucumda:
public Date(){
data[0] = 0;
data[1] = 0;
data[2] = 0;
}
Bunu yaparsam her şey yolundadır. Varsayılan veri değerleri başlatılır, ancak bunun yerine şunu yaparsam:
public Date(){
int[] data = {0,0,0};
}
Diyor ki:
Local variable hides a field
Neden?
Yapıcı içinde bir diziyi başlatmanın en iyi yolu nedir?
datasonraki değişkeniniz"//some code"tüm sınıfın kapsamına sahip.datayapıcıdaki değişken , yapıcı içinde bir kapsama sahipken. ve kurucu tamamlandığında, değişken yok edilecektir. Ayrıcadatayapıcı içindeki değişken, değişkeni sınıfta aynı adla gizler. Bu hatayı haklı çıkarırLocal variable hides a field