内部类

2016-04-15  本文已影响35人  M_JCs

1、内部类分类:

2、成员内部类

1.概念:

定义在一个类内部的类成为成员内部类,相应的包含内部类的类成为外部类。

2.特点:

外部类.this.成员变量
外部类.this.成员方法
 Outter outter = new Outter();
 Outter.Inner inner = outter.new Inner();  //必须通过Outter对象来创建

2、局部内部类

1、概念:

局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。

2、特点

3、匿名内部类

1、概念:

匿名内部类应该是平时我们在Android开发中用得最多的,用于各种Android事件的监听,典型代码如下:

mButton.setOnClickListener(new OnClickListener() {           

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub     

            }
        });

2、特点:

4、静态内部类

1、概念

静态内部类也是定义在另一个类里面的类,只不过在类的前面多了一个关键字static。静态内部类是不需要依赖于外部类的,这点和类的静态成员属性有点类似,并且它不能使用外部类的非static成员变量或者方法,这点很好理解,因为在没有外部类的对象的情况下,可以创建静态内部类的对象,如果允许访问外部类的非static成员就会产生矛盾,因为外部类的非static成员必须依附于具体的对象。

2、特点

 Outter.Inner inner = new Outter.Inner();

5、深入理解内部类

Q1:为什么成员内部类可以无条件访问外部类的成员?

Q2:为什么局部内部类和匿名内部类只能访问局部final变量?

6、内部类的使用场景

上一篇 下一篇

猜你喜欢

热点阅读