询问一个关于内部类的问题

ultrasurf 2008-03-14 08:52:06
请问以下这句为什么不报错?

public class Test {
public static void main (String[] args) {
Test newTest=new Test();
Inner innerClass=newTest.ReturnInner(); //这句为什么不报错?
}

public Inner ReturnInner(){
return new Inner();
}

class Inner {
}
}

Thing in JAVA上说,如果从外部类的非静态方法之外的任意位置创建某个内部类,那么必须具体指明这个对象的类型,比如这里就应该是
Test.Inner innerClass=newTest.ReturnInner(); 但我在这里把外部类名Test.去掉也不报错,请问是为什么?
...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ultrasurf 2008-03-14
  • 打赏
  • 举报
回复
那能解释一下Thinking in java 4ed这个例子里为什么main的最后两行要加上OuterClass名字吗?


dracularking 2008-03-14
  • 打赏
  • 举报
回复
在中国说 中国北京 或 北京 人都能知道是什么意思
如果在外国直接说北京就有可能引起歧义了 不保证其他国家没有有同名城市
临远 2008-03-14
  • 打赏
  • 举报
回复
因为在内部呗,所以简化调用。

如果你另外写个单独的public class Test2,再想让它使用Inner就需要加全名了。

唉,主要还是为了让你省事哦,体贴的说

62,615

社区成员

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

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