Java 中 final 关键字的用法

2025年3月17日 | 阅读 3 分钟

Java 中,final 是一个关键字,它保证了 基本类型 的不变性。同时它也保证了一个变量只能被赋值一次。如果一个对象是可变的,即使它被定义为 final,我们也可以改变它的内容。在本节中,我们将详细讨论 final 关键字的用途

Use of final Keyword in Java

关键字 final 是一个 访问修饰符。如果我们想使用 final 关键字,我们必须在变量、方法 和类之前指定它。它限制了我们访问变量、方法和类。注意,final 方法不能被继承和重写。如果我们想存储一个在程序执行期间不需要改变的值,我们必须使用 final 关键字。通常,它用于赋值常量值。例如,PI=3.14, g=9.8 的值。

处理 final 关键字时,请记住以下几点

  • 在声明 final 变量时对其进行初始化。
  • 空白的 final 变量可以在实例初始化块或构造函数中初始化。
  • 空白的 final 静态变量可以在静态块中初始化。

让我们来讨论 final 关键字的用法。

变量使用 final 关键字的用法

可以使用 final 关键字声明一个变量。一旦赋值,final 变量(常量)的值就不能被改变。final 变量必须使用大写字母。我们也可以使用下划线来分隔两个单词。例如

当 final 变量是对对象的引用时,这个 final 变量被称为引用 final 变量。例如,final StringBuffer sb;

注意:对于引用 final 变量,被该引用变量指向的对象内部状态可以被改变,但不能重新赋值该引用变量。这种机制称为非传递性。

这种机制也可以应用于 数组,因为数组在 Java 中也是对象。前缀为 final 的数组被称为final 数组

方法使用 final 关键字的用法

以 final 关键字为前缀的方法称为final 方法。注意,final 方法不能被重写。例如,Java Object的大部分方法都是 final 的。

类使用 final 关键字的用法

声明为 final 的类称为final 类。注意,final 类不能被继承。final 类有两种用途,即防止继承使类不可变。例如,所有 包装类 都是 final 类,而 String 类 是一个不可变类。