简述 Java 中 final 关键字的作用
# 简述 Java 中 final 关键字的作用
final 关键字主要用在三个地方:变量、方法、类。
修饰对象 | 限制 | 使用场景 |
---|---|---|
类 | 被final修饰的类,是不可以被继承的,这样做的目的可以保证该类不被修改 | Java的一些核心的API都是final类,例如String、Integer、Math等 |
方法 | 子类不可以重写父类中被final修饰的方法 | 比如 模板方法,可以用来固定算法 |
成员变量 | 被修饰的成员变量必须在定义时或者构造器中进行初始化赋值,且不可再修改 | |
局部变量 | final修饰局部变量时只能初始化(赋值)一次,但也可以不初始化 | |
方法参数 | final修饰方法参数时,是在调用方法传递参数时候初始化的 |
final修饰变量要说明几点:
1.修饰基本类型数据,final会将值变为一个常数(创建后不能被修改);
2.修饰的是引用类型,引用的指向 是不可变,但对象里面的属性可以改变 。这一限制也适用于数组,数组也属于对象,数组本身也是可以修改的。
3.方法参数中的final句柄,意味着在该方法内部,我们不能改变参数句柄指向的实际东西,也就是说在方法内部不能给形参句柄再另外赋值。
//这段代码可以正常编译运行 因为final修饰的是引用类型,引用的指向 是不可变,但对象里面的属性可以改变
public class Test {
public static void main(String[] args) {
final MyClass myClass = new MyClass();
System.out.println(++myClass.i);
}
}
class MyClass {
public int i = 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
编辑 (opens new window)
上次更新: 2022/05/19, 21:26:01