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

创建类后的输出问题。。

https://img1.sycdn.imooc.com//5bacc1530001fdd507670575.jpg

运行的结果::::

53941e880001cb8003530223.jpg

为什么结果会有最后两句呢???

创建了hello2的作用是什么呢???  创建hello2,后面没有代码调用?为什么还会有输出???

正在回答

3 回答

自动调用构造方法。    每次创建对象都会调用构造方法的,即使你没有创建构造方法,系统也会 默认一个无参的构造方法的

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

慕瓜453346 提问者

不好意思啊,,,还是不太懂,懵懵的
2018-09-28 回复 有任何疑惑可以回复我~
#2

Konata1 回复 慕瓜453346 提问者

你在你声明的方法前面用static或者final修饰就只会执行一次了
2019-05-15 回复 有任何疑惑可以回复我~

因为你创建了一个新的对象hello2,当你创建这个新对象后,这个对象就会自动运行类里的初始化块与构造方法。但是因为静态初始化块只会自动运行一次,在创建hello1时已经运行过了,所以不会再次运行。然后hello2对象也没有调用什么方法,所以并不输出main方法中的输出mum1:91等等。

即每创建一个新的对象,就会自动执行类里的构建方法与初始化块。

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

每创建一个类的实例,就会自动执行初始化块,而静态初始化块只初始化一次,所以当你再次创建hello2时它就不执行了,只执行初始化块和构造方法。

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

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530628    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

创建类后的输出问题。。

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