最近我在准备 Java 面试时遇到了以下定义:
所有可执行代码都在初始化列表或方法中执行。
但据我了解,Java 不支持这里提到的初始化列表
那么为什么当Java不支持初始化列表时,作者给出了像上面这样的定义呢?
最近我在准备 Java 面试时遇到了以下定义:
所有可执行代码都在初始化列表或方法中执行。
但据我了解,Java 不支持这里提到的初始化列表
那么为什么当Java不支持初始化列表时,作者给出了像上面这样的定义呢?
我不能代表那个作者,但我的理解是,他/她的意思是静态初始化块(或)实例块。有关这些块的更多信息,请参阅本教程。
应该读为“可执行代码应该在初始化块(静态或非静态)、构造函数或方法中”
所以如果System.out.println("executable statement")
是我们的可执行语句,那么
public class SomeClass{
static{
System.out.println("executable statement");
}
{
System.out.println("executable statement");
}
public SomeClass(){
System.out.println("executable statement");
}
public void someMethod(){
System.out.println("executable statement");
}
}
这是有效的代码,而
public class SomeClass{
System.out.println("executable statement");
}
给出编译器错误