它有什么用途?
只需阅读作者已经完成的书中的示例.
int numOfGuesses=0;
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 21
自动赋值为零仅适用于成员,而不适用于局部变量.如果它是局部变量并且= 0
省略,则该变量没有值,甚至不为零.尝试在分配之前使用该值将导致编译错误.例如,此代码尝试使用未初始化的局部变量:
public class Program
{
public static void main(String[] args)
{
int numOfGuesses; // local variable
System.out.println(numOfGuesses);
}
}
Run Code Online (Sandbox Code Playgroud)
并产生此编译错误:
Program.java:6: variable numOfGuesses might not have been initialized
System.out.println(numOfGuesses);
Run Code Online (Sandbox Code Playgroud)
使用成员的代码工作并输出零:
public class Program
{
int numOfGuesses; // member variable
public void run()
{
System.out.println(numOfGuesses);
}
public static void main(String[] args)
{
new Program().run();
}
}
Run Code Online (Sandbox Code Playgroud)
对于成员,如果我的代码使用初始zalue为零的事实,我倾向于将其分配为零,如果我的代码不使用初始值,则忽略赋值(例如,如果值在构造函数或其他地方分配) ).结果是相同的两种方式,所以这只是一个样式问题.