0%

Java 内部类

静态内部类

义在类内部的静态类被称为静态内部类, 静态内部类可以访问外部类的静态变量和方法, 在静态内部类中可以定义静态变量, 方法, 构造函数等, 静态内部类通过 (外部类.静态内部类) 的方式来调用

Java 集合类 HashMap 在内部维护了一个静态内部类 Node 数组用于存放元素, 但 Node 数组对使用者是透明的, 像这种和外部类关系密切且不依赖外部类实例的类, 可以使用静态内部类实现

成员内部类

定义在类内部的非静态类叫作成员内部类, 成员内部类不能定义静态方法和变量 (final 修饰的除外) , 因为成员内部类是非静态的, 而在 Java 的非静态代码块中不能定义静态方法和变量

局部内部类

定义在方法中的类叫作局部内部类, 当一个类只需要在某个方法中使用某个特定的类时, 可以通过局部类来优雅地实现

匿名内部类

匿名内部类指通过继承一个父类或者实现一个接口的方式直接定义并使用的类, 匿名内部类没有 class 关键字, 这是因为匿名内部类直接使用 new 生成一个对象的引用