为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

2 回答

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

1 回复 有任何疑惑可以回复我~

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

3 回复 有任何疑惑可以回复我~
#1

F_ake

普通来说,每一次创建类的一个对象,类中的代码块和方法都会被调用一次, 请问是所有方法吗?还是只是匹配的构造方法?
2018-03-23 回复 有任何疑惑可以回复我~
#2

Erque 回复 F_ake

是构造方法
2018-05-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信