大家好,我是
方圆
让我们看看final关键字儿
1. 赋值时机
1.1 非静态属性
- 第一种是在声明的变量后边
直接等号赋值
- 第二种是在
构造函数中赋值
- 第三种是用初始代码块中赋值(第一次见)
public class FinalDemo {
//1
private final int demo = 3;
//2
public FinalDemo(int demo) {
this.demo = demo;
}
//3
{
demo = 3;
}
}
1.2 静态属性
- 第一种是在声明的时候
直接等号赋值
- 第二种是在
静态代码块中赋值
public class FinalDemo {
//1
private static final int demo = 3;
//2
static {
demo = 3;
}
}
另外注意,以上是演示代码,final只能赋值一次,这样写仅是为了看起来容易
1.3 局部变量
局部变量的话非常简单,和我们使用普通变量一样,只要在我们使用之前进行赋值
就可以
2. final修饰方法
构造方法
不能被final修饰- 被final修饰的方法
不能被重写
static修饰的方法
也不能被重写哟!!!
3. final修饰类
- final修饰的类不能被继承,例如我们熟悉的String类就是被final修饰的
4. final修饰属性
- 被final修饰的
基本数据
类型不能被改变 - 被final修饰的
引用类型
它的引用
不能被改变,但是它其中的属性可以进行改变
加油儿!