다음과 같은 프로그램이 있습니다.
class Test {
final int x;
{
printX();
}
Test() {
System.out.println("const called");
}
void printX() {
System.out.println("Here x is " + x);
}
public static void main(String[] args) {
Test t = new Test();
}
}
실행하려고하면 다음과 같이 컴파일러 오류가 발생합니다. variable x might not have been initialized
Java 기본값에 따라 아래 출력을 올바르게 받아야합니까 ??
"Here x is 0".
최종 변수에 dafault 값이 있습니까?
이렇게 내 코드를 변경하면
class Test {
final int x;
{
printX();
x = 7;
printX();
}
Test() {
System.out.println("const called");
}
void printX() {
System.out.println("Here x is " + x);
}
public static void main(String[] args) {
Test t = new Test();
}
}
다음과 같이 출력됩니다.
Here x is 0
Here x is 7
const called
누구든지이 행동을 설명해 주시겠습니까 ..