课程
/后端开发
/Java
/Java入门第二季 升级版
为什么不执行最后一行我懂了,但我没看到调用hello2啊??
2017-04-01
源自:Java入门第二季 升级版 8-10
正在回答
在加载一个新的对象时,会先初始化块,然后在调用构造方法。初始化块的时候,会先初始化静态类型的变量,再初始化一般变量。而静态变量在一个main方法中只会初始化一次,所以在hello2中没有num3,而且num2在num1前面。可以把hello1和hello的顺序换一下就清楚了
是因为在创造Hello2时,调用了构造方法和初始化块,但由于静态初始化块只会执行一次,所以只会打印两条。
苏文进
同问,只是创建了一个hello2的对象,为什么前面的非静态变量还会再赋值一次并打印出来呢? 是因为用构造方法创建对象的时候,会自动执行一遍前面的那段代码吗?
意思是不会执行静态初始化块,也就是不会在出现一次“通过静态初始化块为静态变量num3赋值”
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
2 回答为什么创建类对象hello2 会再执行一次程序呀 TAT
5 回答此时为什么会有Animal类执行了和Dog类执行了
2 回答最后一句hello2为什么还会输出两行
2 回答为什么正确的代码也执行不了
3 回答为什么定义对象hello2之后就重新执行了块和方法