19901120
2016-07-04 19:52
请问为什么最后HelloWorld hello2=new HelloWorld();会输出最后2行
当创建对象的实例时,就会依次执行初始化块,构造方法;
HelloWorld hello2=new HelloWorld();//创建对象的实例,这时就调用之前的初始化代码,
静态初始化块只能执行一次,hello1的时候已创建,所以Hello2不再创建静态初始化块的部分,所以就剩最后两行的输出了。
有初始化块时,先执行用静态初始化块(
static {
System.out.println("通过静态初始化块初始化age");
age = 20;
}
),再执行普通初始化块(
{
System.out.println("通过初始化块初始化sex");
sex = "男";
}
),最后执行用构造方法(
public HelloWorld() {
System.out.println("通过构造方法初始化name");
name = "tom";
}
),这是显示前三行的原因,最后通过对象调用了show方法(hello.show2()),所以会显示最后一行
倒数第二行是因为new一个对象时会调用他的构造方法,所以输出了构造方法中的那句话;最后一行是因为调用了show()方法,hello2.show()
Java入门第二季 升级版
530554 学习 · 6091 问题
相似问题
回答 2