它有什么作用?
只需阅读一本书作者编写的示例即可。
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为零的事实,则我倾向于将显式赋值为零;如果我的代码不使用初始值(例如,如果该值是在构造函数中或其他位置赋值的话),则我会忽略赋值)。两种方法的结果都是相同的,因此这只是样式问题。