问答详情
源自:8-10 Java 中的 static 使用之静态初始化块

创建类后的输出问题。。

https://img.mukewang.com/5bacc1530001fdd507670575.jpg

运行的结果::::

53941e880001cb8003530223.jpg

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

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

提问者:慕瓜453346 2018-09-27 19:41

个回答

  • 千寻街
    2018-09-27 20:36:57
    已采纳

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

  • qq_不过六级不改名i_opIMVZ
    2018-10-16 18:53:03

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

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

  • 洛辰m
    2018-09-29 20:50:15

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