我认为选 A。B,既然两者都声明为 public,所以它们在 package 外也是可见的。
C,同上,既然声明了 public, 所以就不是Outer专用的了。
D, 要这样声明: new Outer.Inner() 来指明是属于哪个 class 下的。

解决方案 »

  1.   

    楼上,我觉得如果去掉 static ,没有一个正确。
    至于在Outer外生成一个对象,可以这样。Outer o = new Outer();
    Inner i = o.new Inner();
      

  2.   

    答案的确是A的,
    带STATIC的嵌套类是顶级类啊,为什么还不可以直接引用呢?
      

  3.   

    顶级类是什么意思?我没听说过这样的词~~~就我个人理解,内部类的权限定义跟一般的变量定义是有点类似的,所以声明了 public static class Inner... 跟声明静态变量,比如 public static int i 的引用方式是类似的。
      

  4.   

    To:: dengsfOh,sorry...没仔细看,以为是with呢,没想到是within...sorry 你说的对。.
      

  5.   

    谢谢了,明白。
    顶级类是JDK1.0的JAVA包成员,JDK1.1才增加的嵌套类,顶级类就是没有被任何类嵌套。