一、内部类
1.成员内部类
在一个类的内部定义的普通类
可以访问外部类的所有成员,包括私有成员
需要一个外部类的实例来创建成员内部类的实例
可以被修饰为 public、private、protected 或者默认
2.静态内部类
一个静态内部类是静态的成员类。
不需要外部类的实例来创建静态内部类的实例
不能访问外部类的实例成员,只能访问外部类的静态成员
可以被修饰为 public、private、protected 或者默认
3.局部内部类
在方法中定义的类
只能在定义它的方法中访问,不能在方法外部访问
不能被 private、protected、static 修饰
只能访问方法中的 final 或 effectively final 局部变量
4.匿名内部类
没有名字的内部类,通常用于实现接口或继承抽象类
通常用于简化代码,特别是当只需要一个类的实例并且这个类是一次性的
直接在创建对象时定义类的实现
不能有构造函数和静态成员
二、final关键字
final 是一个修饰符,用于表示不可变或不可更改的概念。可以用于类、方法和变量。
final 类:
当一个类被声明为 final 时,表示这个类不能被继承。
防止类被继承,确保类的实现不被改变。
final 方法:
当一个方法被声明为 final 时,表示这个方法不能被子类重写(override)。
确保方法的行为在继承层次中保持不变。
final 变量:
当一个变量被声明为 final 时,表示这个变量的值在初始化后不能更改。
确保变量的值不可变,常用于定义常量。