Tôi có một lớp học và trong lớp học đó, tôi có cái này:
//some code
private int[] data = new int[3];
//some code
Sau đó, trong hàm tạo của tôi:
public Date(){
data[0] = 0;
data[1] = 0;
data[2] = 0;
}
Nếu tôi làm điều này, mọi thứ đều ổn. Giá trị dữ liệu mặc định được khởi tạo nhưng nếu thay vào đó tôi thực hiện điều này:
public Date(){
int[] data = {0,0,0};
}
Nó nói rằng:
Local variable hides a field
Tại sao?
Cách tốt nhất để khởi tạo một mảng bên trong hàm tạo là gì?
datasau khi"//some code"có một phạm vi của toàn bộ lớp. trong khi biếndatatrong hàm tạo đang có một phạm vi bên trong hàm tạo. và một khi phương thức khởi tạo được thực hiện, biến sẽ bị hủy. Vàdatabiến bên trong hàm tạo cũng ẩn biến có cùng tên trong lớp. Đây biện minh cho lỗiLocal variable hides a field