나는 수업이 있고 그 수업에는 다음이 있습니다.
//some code
private int[] data = new int[3];
//some code
그런 다음 내 생성자에서 :
public Date(){
data[0] = 0;
data[1] = 0;
data[2] = 0;
}
이렇게하면 모든 것이 정상입니다. 기본 데이터 값이 초기화되지만 대신 이렇게하면 :
public Date(){
int[] data = {0,0,0};
}
그것은 말한다 :
Local variable hides a field
왜?
생성자 내부에서 배열을 초기화하는 가장 좋은 방법은 무엇입니까?
data이후 변수"//some code"는 전체 클래스의 범위를 갖습니다.data생성자 의 변수 는 생성자 내부에 범위를 가지고 있습니다. 생성자가 완료되면 변수가 파괴됩니다. 또한data생성자 내부의 변수는 클래스에서 동일한 이름으로 변수를 숨 깁니다. 이것은 오류를 정당화합니다Local variable hides a field