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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冉世友 中级黑马   /  2012-12-29 21:45  /  2363 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 心犀香 于 2012-12-30 10:04 编辑

一个类中有好几个内部类,其中一个内部类里面怎么访问其他内部类里的成员和方法呢?
  1. Class Outer{
  2.      
  3.      Class Inner1{
  4. //如何在这里访问Inner2里的function方法
  5.      }

  6.      class Inner2{
  7.        public void function(){
  8.        }

  9.       }

  10. }
复制代码
比如说,我想在Inner1中访问Inner2中的function方法,在eclipse里我用new Inner2().fuction()不行的,new Outer().new Inner2().function()也不行。。。。


评分

参与人数 1技术分 +1 收起 理由
崔政 + 1 神马都是浮云

查看全部评分

8 个回复

倒序浏览
在度娘搜了下,看到些答案,试了不对,不过好像反而懂了。
类中成员有变量,有方法,还可能有内部类,现在好像就遇到过这几种。
如果直接写new Inner2().fuction()这句,在类Inner1中,这句话既不是变量,也不是方法,感觉什么都不是,这句话若执行返回fuction()的返回值,这里是void,就算是个int,具体的是个数1,但这好像没头没尾的在类中放了个1,我估计就是因为这个原因。平常一般都在main方法里写代码,突然在一个空白的类里好像有点反应不过来。所以要在Inner1调用Inner2成员,改成用Inner1的一个方法里去调用,比如
class Inner1{
        public void method() {
             new Inner2().function();
        }
}我试了下,这样就没错误了。

点评

嗯,明白了,多谢指点  发表于 2012-12-30 10:01

评分

参与人数 1技术分 +1 收起 理由
崔政 + 1 赞一个!

查看全部评分

回复 使用道具 举报
马志军 发表于 2012-12-29 22:55
在度娘搜了下,看到些答案,试了不对,不过好像反而懂了。
类中成员有变量,有方法,还可能有内部类,现在 ...

弄成点评了,多谢指点哈~
回复 使用道具 举报
心犀香 发表于 2012-12-30 10:03
弄成点评了,多谢指点哈~

my pleasure
回复 使用道具 举报


  1. class InnerClassDemo3
  2. {
  3. public static void main(String[] args)
  4. {
  5. Outer.Inner1 inner=new Outer().new Inner1();
  6. inner.func1();
  7. }
  8. }

  9. class Outer
  10. {
  11. class Inner1
  12. {
  13. void func1()
  14. {
  15. Outer.Inner2 inner=new Outer().new Inner2();
  16. inner.func2();
  17. }
  18. }
  19. class Inner2
  20. {
  21. void func2()
  22. {
  23. System.out.println("hello word!");
  24. }
  25. }
  26. }
复制代码
回复 使用道具 举报
wz999hmlt 发表于 2013-1-10 13:12
楼上的方法很赞。求解若要使两个内部类同时定义到外部类的方法中,那这两个内部类怎么互相访问
class Outer ...

看看直接New对象行不行~
回复 使用道具 举报
王芝 发表于 2013-1-10 13:12
楼上的方法很赞。求解若要使两个内部类同时定义到外部类的方法中,那这两个内部类怎么互相访问
class Outer ...

你好,我觉得是这样的,类是随着对象的建立而加载的,只有当Inner2加载完以后才可以调用里面的方法。所以你可以把Inner2放到前面Inner1d的位置,然后再在Inner1中调用function2()
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马