关于空白final的一点理解

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

https://blog.csdn.net/fuckluy/article/details/50353706

猜你喜欢

转载自blog.csdn.net/weixin_38361347/article/details/82085197