前言
java的类中,可以定义类,这样定义在类内部的类被称为内部类。 根据定义的方式不同,内部类分为静态内部类、成员内部类、局部内部类、匿名内部类四种
静态内部类
由static修饰的内部类。
- 可以访问外部类所有的静态变量和属性
- 类中可以定义静态属性、方法、构造器
- 其他类使用静态内部类的方式:外部类.静态内部类
- (像HashMap类内部就有个静态内部类Entry,像这种和外部类关系紧密的,且不依赖外部类实例的,都可以使用静态内部类)
成员内部类
定义在类内部的非静态类,就是成员内部类。成员内部类不能定义静态的方法和变量(final 修饰的除外)
局部内部类
定义在方法中的类,就是局部内部类。如果一个类只在某个方法中使用,可以考虑使用局部类
匿名内部类
继承一个父类或者实现一个接口,他是没有class的,这是因为匿名内部类直接使用new 来生成一个对象的引用