新手问题。
为什么第一个代码段打印出“0”而第二个代码段返回错误?
无错代码。
public class test
{
public int c;
public test()
{
System.out.println(c); //prints out 0
}
public static void main(String args[])
{
test t = new test();
t.printC();
}
}
无法编译的代码
int i;
System.out.println(i); //returns a error in main method as well as other methods.
使用javac终端命令(OS X)编译第二个代码段 -
test.java:12: error: variable i might not have been initialized
System.out.println(i);
^
使用Eclipse编译第二个代码段 -
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The local variable i may not have been initialized
at test.test.main(test.java:14)
答案 0 :(得分:0)
当@ZouZou链接到时,必须始终初始化局部变量,但实例变量不能。这是因为编译器无法知道调用哪些顺序方法,因此不知道实例变量是否已经初始化。