A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

本帖最后由 不去会死 于 2014-6-21 19:31 编辑

求一种最直白最通俗的理解

2 个回复

倒序浏览
这是我在资料上看到的,希望能帮到你。

这样会产生歧义。例子如下:
class Outer {
   int outerX;
   Inner inner1 = new Inner();
   Inner inner2 = new Inner();
   class Inner {
     int innerX;
   }
}

Outer outer1 = new Outer();
Outer outer2 = new Outer();

假如innerX是static的,那么这个static的含义是
1:仅是同一outer实例下的不同inner实例共享:
outer1.inner1.innerX=outer1.inner2.innerX,And
outer2.inner1.innerX=outer2.inner2.innerX,But
outer1.inner1.innerX!=outer2.inner1.innerX,Hence
outer1.inner2.innerX!=outer2.inner2.innerX

2: 所有outer实例的inner实例都共享:
outer1.inner1.innerX=outer1.inner2.innerX,And
outer2.inner1.innerX=outer2.inner2.innerX,And
outer1.inner1.innerX=outer2.inner1.innerX,Hence
outer1.inner2.innerX=outer2.inner2.innerX
回复 使用道具 举报
静态先于对象存在,非静态类都还没加载,怎么加载内部的方法

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马