变量被声明为final,则初始化之后不能被重新赋值;
类的字段可以同时是final和static的;
局部变量和形参可以是final的。
声明final变量,可以只声明,不初始化,这样可以稍后再初始化(且只有这一次显式赋值的机会)。
/* final 变量的赋值 */
public class Final{
final int a = 3; // 声明,同时初始化,这是常规用法
final int b; // b 的初始化延迟到构造函数中
public Final(int b){ this.b = b;}
public static void main(String[] args){
final int x = 3;
final int y;
y = 4; // 编译通过
y = 5; // 报错
}
}
<chenx@DESKTOP-AA9A5Q9 ch07>$ javac -encoding UTF-8 Final.java
Final.java:14: 错误: 可能已分配变量y
y = 5;
^
1 个错误