final 是 Java 中的一个关键字,简而言之,final 的作用意味着“这是无法改变的”。
不过由于 final 关键字一共有三种用法,它可以用来修饰变量、方法或者类,而且在修饰不同的地方时,效果、含义和侧重点也会有所不同,所以我们需要把这三种情况分开介绍。
关键字 final 修饰变量的作用是很明确的,那就是意味着这个变量一旦被赋值就不能被修改了,也就是说只能被赋值一次,直到天涯海角也不会“变心”。如果我们尝试对一个已经赋值过 final 的变量再次赋值,就会报编译错误。
public class FinalVariable {
public final int objVar = 0;
public static final int clsVar = 0;
public static void main(String[] args) {
FinalVariable finalVariable = new FinalVariable();
finalVariable.objVar = 1;
clsVar = 1;
}
}
在这个例子中,我们有两个 final 修饰的 in,然后在 main 函数中尝试去修改它的值,此时会报编译错误,所以这体现了 final 修饰变量的一个最主要的作用:一旦被赋值就不能被修改了。
看完了它的作用之后,我们就来看一下使用 final 的目的,也就是为什么要对某个变量去加 final 关键字呢?主要有以下两点目的。