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

如下程序hello2是怎么被赋值的,程序运行到它的时候已经结束了啊,运行结果为什么会有最后两行?

http://img1.sycdn.imooc.com//56d1d2060001057a03310223.jpg

第一张是运行结果,第二张截图是代码,就是不明白运行结果的最后两行代码?我觉得运行结果不应该有最后两行.....

  • 56d1d08000017e3f05000412.jpg

正在回答

2 回答

HelloWorld类里面有三个变量,num1,num2,num3,其中num3是静态变量

在初始化模块里面有num2和num3的赋值并且输出,但是因为num3是静态变量,所以先初始化num3

在main中新建HelloWorld对象的时候,就会初始化静态变量和成员变量,再调用构造方法

所以输出是 num3,num2,num1(构造方法输出的)

然后就三行System.out.println的对象变量的调用,输出对应的值

HelloWorld hello2 =new HelloWorld();

这里又创建了一个对象,hello2,因为静态变量只有第一次调用的时候会初始化,第二次以后不会

所以输出 num2,num1。

可能是你没有注意到new了一个hello2


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

格心派 提问者

我当时只是觉得hello2刚创建对象程序就结束了,后面居然对它的成员变量赋值了还打印出来了感到奇怪.... 不过现在觉得无所谓了 **你的名字有点意思哦,倒过来念叫超奇妙....谢谢
2016-02-29 回复 有任何疑惑可以回复我~
#2

吾怯二日

谁叫奇妙
2016-02-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

如下程序hello2是怎么被赋值的,程序运行到它的时候已经结束了啊,运行结果为什么会有最后两行?

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