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

创建hello2怎么就输出最后两行了

创建hello2怎么就输出最后两行了

慕用250334 2017-08-21 22:48:34
查看完整描述

4 回答

已采纳
?
_Rock

TA贡献6条经验 获得超0个赞

当执行new HelloWorld()时,它首先去看父类里面有没有静态代码块,如果有,它先去执行父类里面静态代码块里面的内容,当父类的静态代码块里面的内容执行完毕之后,接着去执行子类(自己这个类)里面的静态代码块,当子类的静态代码块执行完毕之后,它接着又去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法,这个就是一个对象的初始化顺序

查看完整回答
反对 回复 2017-08-22
?
Garon

TA贡献6条经验 获得超1个赞

静态代码块只执行一次。

查看完整回答
反对 回复 2017-08-23
  • 慕用250334
    慕用250334
    执行一次我知道,我的疑问是,为什么创建对象时就会执行构造方法和初始化块???
?
慕用250334

TA贡献1条经验 获得超0个赞

重点不是这个呀,当我创建对象时,为什么会输出构造方法,初始化块,静态块,

查看完整回答
反对 回复 2017-08-22
?
_Rock

TA贡献6条经验 获得超0个赞

静态代码块在这个类第一次被调用或实例化的时候就会被执行。 静态代码块只会执行一次,一般会用来初始化一些值,并且在所有对象中全局共享。

查看完整回答
反对 回复 2017-08-22
  • 慕用250334
    慕用250334
    重点不是这个呀,当我创建对象时,为什么会输出构造方法,初始化块,静态块,
  • 4 回答
  • 0 关注
  • 1729 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信