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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 saistart 于 2012-12-5 21:04 编辑
  1. /*
  2. 需求:创建一个内部类,来调用外部类的属性和方法
  3. 分析:
  4. 1,我们在外部类中创建一个内部类,此内部类中去调用外部的
  5. 属性和方法
  6. 2,这里有几个注意事项:不能再静态方法中去创建非静态的内部类对象
  7. 3,这时我们如果在外部想用内部类对象时,只能在实例方法中创建内部类对象
  8. 然后再在main方法中调用自己的实例方法
  9. */
  10. //创建一个外部类
  11. class Outer
  12. {
  13.         //定义两个私有的属性,来验证内部类可以直接调用外部类私有的属性
  14.         private int a=1;
  15.         private int b=2;
  16.         public static void main(String []args)
  17.         {
  18.                 Outer ou=new Outer();
  19.                 System.out.println(ou.fun1());
  20.         }

  21.         //定义一个外部类的实例方法,在此方法中来创建内部类对象(注意:此时尽管内部类为private的,我们也可以创建对象)
  22.         public int fun1()
  23.         {
  24.                 Inner in=new Inner();
  25.                 return in.fun2();
  26.         }
  27.         public int  fun3()
  28.         {
  29.                 return a+b;
  30.         }

  31.         //声明一个私有的内部类,然后去调用外部类私有的属性
  32.         private class Inner
  33.         {
  34.                  int fun2()
  35.                 {
  36.                         //        去调用外部类私有的属性
  37.                         return a*b;
  38.                         [b]fun3();{:soso_e127:}
  39.                 }
  40.                
  41.         }
  42. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

3 个回复

倒序浏览
哥们儿,你到底问的是什么?
回复 使用道具 举报
xjandrew 发表于 2012-12-5 11:38
哥们儿,你到底问的是什么?

哦,对不起!问题没问清楚,我就是问内部类不是可以调用外部类的方法?
回复 使用道具 举报
saistart 发表于 2012-12-5 13:14
哦,对不起!问题没问清楚,我就是问内部类不是可以调用外部类的方法? ...

我代码写错了,我把调用外部类的方法写在了return语句的后面了,所以不能访问那个fun3()语句了。现在搞清楚了,以后多多照顾哦!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马