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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jiaweizhang 中级黑马   /  2015-9-18 10:43  /  307 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

----->内部类:  在类中在定义类称为内部类,一个类中,可以定义多个内部类

内部类访问规则:
        1.内部类可以直接访问外部类中的成员,包括私有。
          因为内部类中成员持有一个外部类的引用,格式:外部类.this
        2.外部类要访问内部类的成员,要先创建内部类对象。
          
外部类其他类访问内部类:
格式:外部类.内部类 变量名 = new 外部类().new 内部类();

类B是类A的内部类,在类C中访问内部类:A.B ab = new A().new B();

内部类定义在成员的位置上时(成员内部类):
1.可以被private 修饰
2.可以被static 修饰

如果内部类定义在局部位置上时(局部内部类):
1.可以直接访问外部类成员
2.不能被成员修饰符修饰
3.不能访问所在局部的变量
4.可以访问所在局部的final变量

当事务内部还有事务,可以设计为内部类

匿名内部类:--->
1.匿名内部类是内部类的简写格式
2.定义匿名内部类的前提:
   内部类必须是继承一个类或者接口
3.匿名内部类格式: new 父类或接口(){定义子类内容}
4.匿名内部类是一个匿名子类的对象

Class A{

   void meth(){
       
        //1.直接调成员
        new B(){        //此为匿名内部类,B是父类
          void show(){  //show为重写父类的方法
            
          }.show();        //.show(),调用匿名内部类的show方法
        }
       
        //2.给匿名内部类起名字,再调用
        B b = new B(){       
            void show(){  
            
            }
        }
        b.show();        //.show(),调用匿名内部类的show方法

       
   }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马