大家说改选什么呢,嵌套类的问题

qnake 2004-03-28 10:03:16
1. package foo;
6
2.
3. public class Outer {
4. public static class Inner {
5. }
6. }
Which statement is true?
A. An instance of the Inner class can be constructed with “new Outer.Inner ()”
B. An instance of the inner class cannot be constructed outside of package foo
C. An instance of the inner class can only be constructed from within the outer
class
D. From within the package bar, an instance of the inner class can be constructed
with “new inner()”
...全文
56 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qnake 2004-03-28
  • 打赏
  • 举报
回复
谢谢了,明白。
顶级类是JDK1.0的JAVA包成员,JDK1.1才增加的嵌套类,顶级类就是没有被任何类嵌套。
老土豆T 2004-03-28
  • 打赏
  • 举报
回复
To:: dengsf

Oh,sorry...没仔细看,以为是with呢,没想到是within...sorry 你说的对。.
dengsf 2004-03-28
  • 打赏
  • 举报
回复
顶级类是什么意思?我没听说过这样的词~~~

就我个人理解,内部类的权限定义跟一般的变量定义是有点类似的,所以声明了 public static class Inner... 跟声明静态变量,比如 public static int i 的引用方式是类似的。
qnake 2004-03-28
  • 打赏
  • 举报
回复
答案的确是A的,
带STATIC的嵌套类是顶级类啊,为什么还不可以直接引用呢?
dengsf 2004-03-28
  • 打赏
  • 举报
回复
楼上,我觉得如果去掉 static ,没有一个正确。
至于在Outer外生成一个对象,可以这样。

Outer o = new Outer();
Inner i = o.new Inner();
老土豆T 2004-03-28
  • 打赏
  • 举报
回复
如果去掉static 则选C
老土豆T 2004-03-28
  • 打赏
  • 举报
回复
A
dengsf 2004-03-28
  • 打赏
  • 举报
回复
我认为选 A。

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

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧