如下程序hello2是怎么被赋值的,程序运行到它的时候已经结束了啊,运行结果为什么会有最后两行?
第一张是运行结果,第二张截图是代码,就是不明白运行结果的最后两行代码?我觉得运行结果不应该有最后两行.....
第一张是运行结果,第二张截图是代码,就是不明白运行结果的最后两行代码?我觉得运行结果不应该有最后两行.....
2016-02-28
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
举报