它有什么作用?

只需阅读一本书作者编写的示例即可。

int numOfGuesses=0;

最佳答案

自动分配为零仅适用于成员,不适用于局部变量。如果它是局部变量,并且省略了= 0,则该变量没有值,甚至没有零。尝试在分配值之前使用该值将导致编译错误。例如,以下代码尝试使用未初始化的局部变量:

public class Program
{
    public static void main(String[] args)
    {
        int numOfGuesses;   // local variable
        System.out.println(numOfGuesses);
    }
}

并产生此编译错误:
Program.java:6: variable numOfGuesses might not have been initialized
        System.out.println(numOfGuesses);

而使用成员的此代码有效并输出零:
public class Program
{
    int numOfGuesses; // member variable

    public void run()
    {
        System.out.println(numOfGuesses);
    }

    public static void main(String[] args)
    {
        new Program().run();
    }
}

对于成员,如果我的代码使用初始zalue为零的事实,则我倾向于将显式赋值为零;如果我的代码不使用初始值(例如,如果该值是在构造函数中或其他位置赋值的话),则我会忽略赋值)。两种方法的结果都是相同的,因此这只是样式问题。

10-05 18:02