1. 定义
内部类:类中的类。
外部类:宿主类。
2. 访问
内部类其实也是一种类的成员,访问同其他类成员。
把内部类隐藏在外部类之内,不许同包的其他类访问该类;
内部类可以访问外部类的私有数据,外部类不能访问内部类的实现细节,比如字段;
3. 非静态内部类
在创建非静态内部类是,必须先创建其外部类对象
4. 静态内部类(使用static修饰的内部类)
静态内部类只能访问外部类的静态成员,不能访问外部类的实例成员。
5. 局部内部类(相当于局部变量)
不能再宿主类以外使用,不能使用修饰符,只能访问方法中final修饰的局部变量,因为final修饰的变量相当于一个常量,其生命周期超出了方法运行的生命周期。
6. 匿名内部类(不能是抽象类,因为没有名字,只能使用在定义时创建并使用)