一、 final修饰【实例变量】
1. 类下没有【无参的构造方法】时
1. 定义时显式赋值
2. 构造方法中赋值(每个构造方法都需要赋值)
3. 普通初始化块中赋值(静态初始化块不可以)
2. 类下有【无参的构造方法】时
1. 定义时显式赋值
2. 普通初始化块中赋值(静态初始化块不可以)
二、 final修饰【静态变量】
1. 类下没有【无参的构造方法】时
1. 定义时显式赋值
2. 静态初始化块中赋值(普通初始化块不可以)
2. 类下有【无参的构造方法】时
1. 定义时显式赋值
2. 静态初始化块中赋值(普通初始化块不可以)