final修饰变量的初始化时机
程序员文章站
2022-05-21 22:37:55
...
final修饰变量的初始化时机
-
A:final修饰变量的初始化时机
- 显示初始化
-
在对象构造完毕前即可
class Demo03_Final { public static void main(String[] args) { Demo d = new Demo(); d.print(); } } //正确 class Demo { int num = 10; public void print() { System.out.println(num); } } //正确 class Demo { //显示初始化 final int num = 10; public void print() { System.out.println(num); } } //错误 class Demo { //可能尚未初始化变量num //被final修饰的初始化值只能被赋值一次,成员变量的默认初始化值是无效值 //所以必须得显示初始化值 final int num; public void print() { System.out.println(num); } } //正确 class Demo { final int num; //构造初始化 public Demo(){ num = 10; } public void print() { System.out.println(num); } } //错误 class Demo { final int num = 10; //不能双管齐下 //无法为最终变量num分配值,被final修饰的只能被赋值一次 public Demo(){ num = 10; } public void print() { System.out.println(num); } }