码迷,mamicode.com
首页 > 其他好文 > 详细

内部类

时间:2015-04-21 17:57:17      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

1、非静态内部类:

     a、四种访问权限:public   protected   default    private(与成员变量相同)

     b、如果外部内属性、内部类属性与内部里方法的局部变量同名,则可以使用this、外部类类名.this做为限定来区分。 

     c、非静态内部类成员可以访问外部类的private成员,但是反过来不成立,外部类不可直接使用非静态内部类成员,必须采用非静态内部类对象来调用访问实例成员。

     d、不允许在外部类的静态成员中直接使用非静态内部类(使用非静态内部类定义变量,创建实例);不允许在非静态内部类定义静态成员。

     e、非静态内部类不可有静态初始化块,但是可以包含普通初始化快。

 

2、静态内部类:

   a、可以包含静态成员,也可以包含非静态成员。静态内部类不能访问外部外部类的实例成员,只能访问外部类的静态成员。

   b、外部类不能直接访问静态内部类的成员,但是可以通过静态内部类类名来方位静态内部类的类成员,对象来访问实例成员。

   c、允许接口里定义内部类,默认使用public  static修饰

 

3、使用内部类:

  a、在外部类内部使用内部类

  b、在外部类以外使用内部类:如果内部类为private则不可访问,其他与类的成员访问权限相同。

        b1:定义内部类(静态和非静态)变量:outerClass.InnerClass   varname;

        b2:创建非静态内部类实例:outerInstance.new InnerConstructor();

                当构建非静态内部类的实例,必须保证子类构造器可以调用非静态内部类的构造器,调用非静态内部类的构造器,必须存在一个外部类的对象。

                技术分享技术分享

        b3:使用静态内部类:new ouerClass.InnerConstructor();

 

 

4、局部内部类:

    在方法内定义个类, 仅在方法内部有效。

 

5、匿名内部类:

     技术分享

         技术分享

         技术分享

 

    技术分享

6、通过内部类可以实现闭包回调。

内部类

标签:

原文地址:http://www.cnblogs.com/qingjun/p/4444790.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!