在Java中,最终变量只能分配一次。可以在声明期间或以后分配它。如果最终变量未分配任何值,则将其视为空白最终变量。以下是管理空白最终变量初始化的规则。
空白实例级别的最终变量不能保留未初始化。
空白的Instance级最终变量必须在每个构造函数中初始化。
空白的Instance级最终变量不能在类方法中初始化。
空白的静态最终变量不能保留未初始化。
静态最终变量必须在静态块中初始化。
静态最终变量不能在构造函数或类方法中初始化。
public class Tester { public final int a; public static final int b; static { b = 2; } Tester() { this(1); } Tester( int a) { this.a = a; } public static void main(String[] args) { Tester tester = new Tester(); System.out.println("a = " + tester.a + ", b = " + b); } }
输出结果
a = 1, b = 2