慕的地8499383
2018-01-20 22:18
helloWorld hello2=new HelloWorld()这句话有什么用,为什么还会输出“通过初始化为变量num2赋值”和“通过构造方法为变量num1赋值”
新创建一个类的对象,类中的代码块和方法都会被执行,但静态块只执行一次,所以hello2里面只输出2个。
helloWorld hello2=new HelloWorld()这句话就是创建了类HelloWorld的一个对象hello2。普通来说,每一次创建类的一个对象,类中的代码块和方法都会被调用一次,HelloWorld中有三个初始化代码块,普通情况下在创建对象hello2时三种应该都调用一次,但是有一个是静态的初始代码块,这个代码块在之前创建对象hello的时候已经分配了空间,也就是已经实例化了。所以在创建对象hello2的时候没有再执行这个静态代码块。所以只输出了两行“通过初始化为变量num2赋值”和“通过构造方法为变量num1赋值”。
Java入门第二季 升级版
530642 学习 · 6091 问题
相似问题