为了账号安全,请及时绑定邮箱和手机立即绑定

请问为什么最后HelloWorld hello2=new HelloWorld();会输出最后2行

请问为什么最后HelloWorld hello2=new HelloWorld();会输出最后2行

正在回答

3 回答

当创建对象的实例时,就会依次执行初始化块,构造方法;

HelloWorld hello2=new HelloWorld();//创建对象的实例,这时就调用之前的初始化代码,

静态初始化块只能执行一次,hello1的时候已创建,所以Hello2不再创建静态初始化块的部分,所以就剩最后两行的输出了。

0 回复 有任何疑惑可以回复我~

有初始化块时,先执行用静态初始化块(

static  { 

System.out.println("通过静态初始化块初始化age");

age = 20;

}

),再执行普通初始化块(

System.out.println("通过初始化块初始化sex");

sex = "男";

}

),最后执行用构造方法(

public HelloWorld() { 

System.out.println("通过构造方法初始化name");

name = "tom";

}

),这是显示前三行的原因,最后通过对象调用了show方法(hello.show2()),所以会显示最后一行

0 回复 有任何疑惑可以回复我~
#1

weibo_徐_無_鬼_0 回复 金乘三

最后一行是因为对象创立的时候会调用构造方法
2016-07-17 回复 有任何疑惑可以回复我~

倒数第二行是因为new一个对象时会调用他的构造方法,所以输出了构造方法中的那句话;最后一行是因为调用了show()方法,hello2.show()

0 回复 有任何疑惑可以回复我~
#1

19901120 提问者

感谢你的帮助 最后一行输出的是构造方法我懂了 但是倒数第二行的通过初始化 还是不是太清楚 请问是哪里调用
2016-07-04 回复 有任何疑惑可以回复我~
#2

金乘三

左边例题程序中 没有显示hello2.这个语句呀,麻烦大神解答
2016-07-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问为什么最后HelloWorld hello2=new HelloWorld();会输出最后2行

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信