本帖最后由 为梦而战 于 2011-12-29 15:14 编辑
你把成员变量做成Static了,Demo类一加载这个a的值就被初始化成2了,而且直到Demo类结束才被释放。
为什么d指向了null,还能输出a的值,那是因为本类中还有一个隐式指针this指向你新创建的对象,
虽然d指向null但是对象还在内存中,this还隐式指向它,所以是this指向对象后输出对象的成员变量a的值2。
也就是相当于System.out.println(this.a);
这时d.a和a及this.a是一样的。都可以输出2 |