版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38361347/article/details/82085197
什么是空白final ?
一个变量或者一个引用 通过final修饰,但却没有进行初始化,必须在构造方法中进行初始化,并且只能出现一个构造方法。
例如:
public class BlankFinal {
// 空白flnal 指的是 final修饰变量或者引用 没有进行初始化
private final int i;
// 初始化
public BlankFinal() {
i = 1;
}
// 空白final字段或者引用, 不能同时被两个构造器 同时 初始化
// public BlankFinal() { j = j+ 1; }
public void test() {
//i = i + 1; 报错(i 不可以被重新赋值,i的值是无法改变的)
//i = 1; final 修饰的基本类型不能改变
System.out.println(i + 1); // 结果是2 这儿仅仅只是输出一个结果,跟i的值无关
}
public static void main(String[] args) {
// 空白final修饰的变量 多次通过构造方法初始化 值是不同的(对象不一样,开辟内存不一样)
new BlankFinal().test();
}
}
https://blog.csdn.net/gongsunjinqian/article/details/37884251