适用场景
- 方便事件监听
- 每个内部类都能独立的继承一个接口的实现, 变相的实现了java的多继承方案
- 方便编写线程代码
使用详解
成员内部类
- 内部类像是类的一个成员 , 可以有四种(public private protect 默认的 )访问权限 外部类只有public 和包访问两种权限
- 内部类可以无条件访问外部类的属性和成员方法
- 内部类访问外部类同名方法:
外部类.this.成员变量(方法)
- 外部类访问内部类成员 : 必须创建内部类的对象才可以访问
局部内部类
- 定义在一个方法或作用域里的类
- 像是方法里的局部变量一样, 是不可以有public protect private 和static修饰符的
匿名内部类
- 不可以有修饰符和static修饰符
- 唯一一种没有构造器的类
- 举例
history_bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
静态内部类
- 在内部类的前面多了static修饰符
- 与普通静态成员一样, 不可以使用非static成员变量和方法(外部类的也不行);
参考链接
https://www.cnblogs.com/dolphin0520/p/3811445.html