Java 常量 final 关键字

发布于 2024-10-04 14:36:29 字数 2772 浏览 29 评论 0

final 修饰变量: 一个变量可以声明为 final,这样做的目的是 阻止内容被修改 (类似于 C/C++中的 const),final 变量的所有字符选择大写是一个普遍的编码约定,用 final 修饰的变量在实例中 不占用内存 ,它实质上是一个常数

final 修饰方法: 被 final 修饰的方法 可以被子类继承,不能被子类的方法覆盖 ,因此,如果一个类不想让它的子类覆盖它的某个成员方法,就可以在该成员方法前面加上 final 关键字.由于父类中的 private 成员方法是不能被子类覆盖的, 所有 private 的成员方法默认也是 final 的 。使用 final 修饰方法除了不想让子类覆盖之外,还有一个原因就是 高效 ,Java 编译器在遇到 final 关键字修饰的方法时会使用 内联机制 ,省去函数调用的开销,提高效率。

final 修饰类: 由 final 修饰的类是 不能继承 的。

在 Java 中, final 关键字用来修饰类、方法和变量,具有不同的含义和用途。主要用途是表示不可改变的,其行为取决于它所修饰的对象类型。

1. final 修饰变量

使用 final 关键字修饰变量表示该变量只能被赋值一次,即它是一个常量。有几种情况可以使用 final 修饰变量:

  • 实例变量(成员变量) :在声明时赋值或在构造函数中赋值,并且一旦赋值后不能再修改。示例:
  public class MyClass {
      final int MAX_COUNT = 100;
  }
  • 静态变量(类变量) :在声明时赋值或在静态初始化块中赋值,并且一旦赋值后不能再修改。示例:
  public class Constants {
      public static final double PI = 3.14159;
  }
  • 局部变量 :在声明时赋值,并且一旦赋值后不能再修改。示例:
  public void exampleMethod() {
      final int localVariable = 10;
      // localVariable = 20; // 编译错误,无法修改 final 变量的值
  }

2. final 修饰方法

使用 final 关键字修饰方法表示该方法不能被子类重写(覆盖)。通常用于确保方法的实现不会被修改或扩展。示例:

public class Parent {
    public final void finalMethod() {
        // 方法实现
    }
}

public class Child extends Parent {
    // 无法重写 Parent 类中的 finalMethod 方法
    // public void finalMethod() { ... } // 编译错误
}

3. final 修饰类

使用 final 关键字修饰类表示该类不能被继承,即不能有子类。示例:

public final class FinalClass {
    // 类定义
}

// 无法继承 FinalClass 类
// public class SubClass extends FinalClass { ... } // 编译错误

主要特性和用途

  • 不可变性 :使用 final 修饰的变量不能改变其值,类不能被继承,方法不能被重写,这有助于确保代码的安全性和稳定性。
  • 效率 :对于 final 变量,编译器可能会进行优化,因为它们的值不会改变,可以在编译时就确定其值,而不必在运行时再计算。
  • 安全性 :通过限制变量、方法和类的修改和继承, final 提高了代码的安全性,减少了意外修改引起的错误。

注意事项

  • 初始化final 变量必须在声明时或构造函数中进行初始化,确保其值被设置且不会改变。
  • 命名规范 :通常 final 常量名使用大写字母,多个单词用下划线分隔,例如 MAX_COUNT
  • 关于性能 :在一些情况下,使用 final 可能会对性能有微弱的提升,因为编译器可以进行更好的优化。

综上所述, final 关键字在 Java 中用于表示不可改变的常量、方法和类,通过其修饰可以提高代码的稳定性、安全性和性能。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

余厌

暂无简介

文章
评论
24 人气
更多

推荐作者

18058794968

文章 0 评论 0

未名湖

文章 0 评论 0

断舍离

文章 0 评论 0

文章 0 评论 0

cyay10

文章 0 评论 0

qq_RdefO0

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文