Java 常量 final 关键字

发布于 2024-10-04 14:36:29 字数 2772 浏览 16 评论 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技术交流群

发布评论

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

关于作者

余厌

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

xu362930323

文章 0 评论 0

缱倦旧时光

文章 0 评论 0

qq_eXruk9

文章 0 评论 0

遂心如意

文章 0 评论 0

guojiayue1

文章 0 评论 0

愿与i

文章 0 评论 0

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