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