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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张亚青 于 2013-3-20 12:46 编辑

【内部类的访问规则】
1、内部类可以直接访问外部类中的成员,包括私有。
        之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式为:"外部类名.this."
2、外部类要访问内部类,必须建立内部类对象。

以上是我在看毕老师教程的时候记得笔记,我的疑问是在第一点中:内部类持有一个外部类的引用“外部类名.this.”,请问这句话具体该怎么解释。

点评

如果你的问题已经得到解决,请及时将主题改为[已解决],如果还有问题请继续追问,谢谢  发表于 2013-3-20 12:04

评分

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

查看全部评分

3 个回复

倒序浏览
本帖最后由 刘国涛 于 2013-3-19 18:03 编辑

class Outer
{
   private int x = 3;
   class Inner//内部类
  {
       void function()
       {
            System.out.println("innner :"+Outer.this.x);//输出3,可以省略Outer.this,这就是内部类持有一个外部类的引用
      }
   }

   void method()
   {
       Inner in = new Inner();
       in.function();
   }
}

class  InnerClassDemo
{
    public static void main(String[] args)
    {
          Outer out = new Outer();
          out.method();
    }
}
回复 使用道具 举报
外部类名.this可以理解成:内部类引用当前外部类的对象!
回复 使用道具 举报
  1. //内部类引用外部类对象时用“外部类名”.this;的形式,例如

  2. class Outer
  3. {
  4.         public void method()
  5.                 {
  6.                         Outer .this//就是表示Outer的对象。在这种情况下和this是一样的
  7.                 }
  8.       
  9.         class  Inner
  10.                 {
  11.                         void method1()
  12.                                 {
  13.                                         Outer.this//还是表示Outer的对象。但是这里是在内部类里面。所以这里的this就是指内部类Inner的对象了。。
  14.                                                  //但是我们经常会在内部类里面调用外部的东西。所以就用Outer.this这种方式就行了
  15.                                 }
  16.                 }
  17. }

复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马