Saya memiliki kelas dan di kelas itu saya memiliki ini:
//some code
private int[] data = new int[3];
//some code
Kemudian di konstruktor saya:
public Date(){
data[0] = 0;
data[1] = 0;
data[2] = 0;
}
Jika saya melakukan ini, semuanya baik-baik saja. Nilai data default diinisialisasi tetapi jika saya melakukan ini:
public Date(){
int[] data = {0,0,0};
}
Ia mengatakan:
Local variable hides a field
Mengapa?
Apa cara terbaik untuk menginisialisasi array di dalam konstruktor?
datasetelah"//some code"memiliki ruang lingkup seluruh kelas. sedangkan variabeldatadalam konstruktor memiliki ruang lingkup di dalam konstruktor. dan setelah konstruktor selesai, variabel akan dihancurkan. Dan jugadatavariabel di dalam konstruktor menyembunyikan variabel dengan nama yang sama di kelas. Ini membenarkan kesalahanLocal variable hides a field