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

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

19901120

2016-07-04 19:52

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

写回答 关注

3回答

  • xin_TEKABO
    2016-07-29 10:43:24

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

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

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

  • 慕粉3584973
    2016-07-04 20:29:07

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

    static  { 

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

    age = 20;

    }

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

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

    sex = "男";

    }

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

    public HelloWorld() { 

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

    name = "tom";

    }

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

    weibo_... 回复金乘三

    最后一行是因为对象创立的时候会调用构造方法

    2016-07-17 13:21:34

    共 2 条回复 >

  • 弓长王彳亍
    2016-07-04 20:13:55

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

    金乘三

    左边例题程序中 没有显示hello2.这个语句呀,麻烦大神解答

    2016-07-08 17:02:19

    共 2 条回复 >

Java入门第二季 升级版

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

530554 学习 · 6091 问题

查看课程

相似问题