最后一句hello2为什么还会输出两行

来源:8-10 Java 中的 static 使用之静态初始化块

慕的地8499383

2018-01-20 22:18

helloWorld hello2=new HelloWorld()这句话有什么用,为什么还会输出“通过初始化为变量num2赋值”和“通过构造方法为变量num1赋值”

写回答 关注

2回答

  • 兜底旺
    2018-04-16 13:43:28

    新创建一个类的对象,类中的代码块和方法都会被执行,但静态块只执行一次,所以hello2里面只输出2个。

  • 慕标7701856
    2018-01-20 23:20:52

    helloWorld hello2=new HelloWorld()这句话就是创建了类HelloWorld的一个对象hello2。普通来说,每一次创建类的一个对象,类中的代码块和方法都会被调用一次,HelloWorld中有三个初始化代码块,普通情况下在创建对象hello2时三种应该都调用一次,但是有一个是静态的初始代码块,这个代码块在之前创建对象hello的时候已经分配了空间,也就是已经实例化了。所以在创建对象hello2的时候没有再执行这个静态代码块。所以只输出了两行“通过初始化为变量num2赋值”和“通过构造方法为变量num1赋值”。

    Erque 回复F_ake

    是构造方法

    2018-05-05 11:25:59

    共 2 条回复 >

Java入门第二季 升级版

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

530642 学习 · 6091 问题

查看课程

相似问题