System.out.println()语句总是被执行吗?假设我有
class c2
{
{
System.out.println("initializer");
}
public static void main(String a[])
{
System.out.println("main");
c2 ob1=new c2();
}
}
那么为什么还会打印“初始化程序”语句。是构造函数语句吗?
答案 0 :(得分:2)
是的,它会打印出来:
main
initializer
一旦调用c2
的构造函数,就会调用初始值设定项。类c2
的默认构造函数隐式看起来像:
c2() {
{
System.out.println("initializer");
}
}
答案 1 :(得分:1)
是的,它会的。如果创建类的实例(c2 ob1=new c2();
),则默认构造函数将执行该命令。该程序还将输出" main",因为在main方法中调用一个新命令。
答案 2 :(得分:0)
这是初始化实例成员阻止
的示例创建c2对象时,括号中的sysout命令也将被执行。 您可以添加这样的初始化代码,只要它包含在块中即可。
请参阅:http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html
你为什么要用它?
Java编译器将初始化程序块复制到每个构造函数中。 因此,这种方法可用于共享一段代码 多个构造函数。
答案 3 :(得分:-1)
是的,但最好将这些代码放在一个方法中,在本例中是c2构造函数。