一、什么是内部类
1、内部类的概念:在一个类的内部、类的方法中创建的类称为内部类。
2、内部类的优点:
(1)内部类可以直接访问外部类的成员
(2)对Java不支持多继承的有益的补充
3、内部类的分类:类中定义的普通的内部类、在一个类的方法中定义的内部类、在一个类中定义静态内部类、内部匿名类。
二、在类中定义的普通内部类的使用
1、外部类的非静态方法访问使用内部类成员:
直接创建内部类对象,通过内部类对象去访问。
2、在外部类的静态方法中访问内部类的成员:
分三步走
(1)//创建外部对象
Outer outer = new Outer();
(2)//创建内部类对象
Inner inner = outer.new Inner();
(3)//通过内部类对象访问内部类的成员
inner.innerFun();
3、在一个类中使用另一个类的内部类同上
public void otherFun() {
//创建外部类对象
Outer outer = new Outer();
//创建Outer类的内部类对象
Outer.Inner inner = outer.new Inner();
//通过内部类对象调用内部类方法
inner.innerFun();
}
三、在方法中定义的内部类,直接访问外部类的成员,使用时只能在所在的方法中使用
四、静态内部类:
自动升级为顶级类,不能访问外部类中的非静态成员。
五、内部匿名类:
直接创建某一个类的无名子类的对象或者创建一个接口的无名实现类的对象时使用的一种无名的内部类。