关键字final

1. final 成员变量
final修饰的成员变量必须由程序员显示地赋值
*类Field:必须在静态初始化块中或声明该Field时指定初始值;
*实例Field:必须在非静态初始化块、声明该Field或构造器中指定初始值;

2. final 局部变量
如果final修饰的局部变量在定义时没有指定默认值,则可以在后面代码中对该final修饰的变量赋初始值,但只能一次,不能重复赋值。

3. final修饰基本类型变量和引用类型变量的区别
*final修饰的基本类型变量的值不会变;
*final修改的引用类型变量所引用的地址不会变,但在该地址上的值会变;

4. 可执行“宏替换”的final变量
满足下面三个条件,变量就相当于一个常量:
*使用final修饰符
*在定义该final变量时指定了初始值;
*该初始值可以在编辑时就被确定下来(例如不需要调用一些方法);

5. final 方法
final修饰的方法不可被重写;
final修饰的private方法可以被“重写”(其实相当于重新定义了一个新的方法);

6. final 类
final修饰的类不可有子类。

你可能感兴趣的:(Java)