关于final修饰字段的初始化问题

sTruth / 2023-08-02 / 原文

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

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