java中的优先级
有人能解释一下这个输出是怎么来的吗java中的优先级,java,constructor,Java,Constructor,有人能解释一下这个输出是怎么来的吗 class Class { { System.out.println("Instance Initializer block"); } Class() { System.out.println("Default Constructor"); } static { System.out.println("Static Block");
class Class
{
{
System.out.println("Instance Initializer block");
}
Class()
{
System.out.println("Default Constructor");
}
static
{
System.out.println("Static Block");
}
public static void main(String[] Args)
{
new Class();
System.out.println("Hello world");
}
}
输出:
Static Block
Instance Initializer Block
Default Constructor
Hello World
初始化类时,首先执行静态初始值设定项块,打印
“static block”
创建实例时(newclass()
),首先执行实例初始值设定项块(打印“实例初始值设定项块”
),然后执行构造函数(打印“默认构造函数”
)
最后执行main方法的
println
语句,打印“Hello World”
顺序如下
如果我从“实例初始值设定项块”中删除花括号,它会给我error@Manish如果删除大括号,则它不再是实例初始值设定项块。不能有不属于任何方法、构造函数或初始值设定项块的语句。