课程
/后端开发
/Java
/Java入门第二季 升级版
helloWorld hello2=new HelloWorld()这句话有什么用,为什么还会输出“通过初始化为变量num2赋值”和“通过构造方法为变量num1赋值”
2018-01-20
源自:Java入门第二季 升级版 8-10
正在回答
新创建一个类的对象,类中的代码块和方法都会被执行,但静态块只执行一次,所以hello2里面只输出2个。
helloWorld hello2=new HelloWorld()这句话就是创建了类HelloWorld的一个对象hello2。普通来说,每一次创建类的一个对象,类中的代码块和方法都会被调用一次,HelloWorld中有三个初始化代码块,普通情况下在创建对象hello2时三种应该都调用一次,但是有一个是静态的初始代码块,这个代码块在之前创建对象hello的时候已经分配了空间,也就是已经实例化了。所以在创建对象hello2的时候没有再执行这个静态代码块。所以只输出了两行“通过初始化为变量num2赋值”和“通过构造方法为变量num1赋值”。
F_ake
Erque 回复 F_ake
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
3 回答请问为什么最后HelloWorld hello2=new HelloWorld();会输出最后2行
4 回答为什么老师敲得代码执行了hello还会执行hello2?
2 回答最后的pri2 hello2=new pri2()是怎么运行的?
3 回答为什么最后运行时没有输出另外两个参数?
7 回答提问一下,例题里最后一句HelloWorld hello2=new HelloWorld();这句代码是什么意思?有什么含义吗?