Java:仅当变量是本地时,打印未初始化的整数才有错误

时间:2015-02-17 22:34:49

标签: java

新手问题。

为什么第一个代码段打印出“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)

1 个答案:

答案 0 :(得分:0)

当@ZouZou链接到时,必须始终初始化局部变量,但实例变量不能。这是因为编译器无法知道调用哪些顺序方法,因此不知道实例变量是否已经初始化。