课程
/后端开发
/Java
/Java入门第二季 升级版
请问为什么最后HelloWorld hello2=new HelloWorld();会输出最后2行
2016-07-04
源自:Java入门第二季 升级版 8-10
正在回答
当创建对象的实例时,就会依次执行初始化块,构造方法;
HelloWorld hello2=new HelloWorld();//创建对象的实例,这时就调用之前的初始化代码,
静态初始化块只能执行一次,hello1的时候已创建,所以Hello2不再创建静态初始化块的部分,所以就剩最后两行的输出了。
有初始化块时,先执行用静态初始化块(
static {
System.out.println("通过静态初始化块初始化age");
age = 20;
}
),再执行普通初始化块(
{
System.out.println("通过初始化块初始化sex");
sex = "男";
),最后执行用构造方法(
public HelloWorld() {
System.out.println("通过构造方法初始化name");
name = "tom";
),这是显示前三行的原因,最后通过对象调用了show方法(hello.show2()),所以会显示最后一行
weibo_徐_無_鬼_0 回复 金乘三
倒数第二行是因为new一个对象时会调用他的构造方法,所以输出了构造方法中的那句话;最后一行是因为调用了show()方法,hello2.show()
19901120 提问者
金乘三
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
7 回答提问一下,例题里最后一句HelloWorld hello2=new HelloWorld();这句代码是什么意思?有什么含义吗?
2 回答最后一句hello2为什么还会输出两行
2 回答最后的pri2 hello2=new pri2()是怎么运行的?
2 回答HelloWorld o = new HelloWorld (); Inner inn = o.new Inner(); ;和 Inner inn =new Inner (); 怎么理解啊
3 回答这里的HelloWorld hello=new HelloWorld();不是创建类的对象hello吗,为什么上边的代码会被执行?