当前位置: 首页 > news >正文

Java final关键字规范说明

一、final修饰方法

​定义​​:声明为final的方法称为最终方法,不允许被子类重写。

​特点​​:

  1. 方法实现固定,确保核心逻辑不被修改
  2. 编译期检查重写限制
  3. 常用于模板方法模式中的固定步骤

示例​​:

class BaseClass {
    public final void criticalOperation() {
        // 核心操作逻辑
    }
}

class SubClass extends BaseClass {
    // 编译错误:无法重写final方法
    @Override  
    public void criticalOperation() {} 
}

二、final修饰类

​定义​​:声明为final的类称为最终类,不能被其他类继承。

​特点​​:

  1. 类功能完整,禁止扩展
  2. 保证类的行为不被篡改
  3. 常见于工具类(如java.lang.Math

​示例​​:

final class UtilityClass {
    public static void helperMethod() {
        // 工具方法实现
    }
}

// 编译错误:无法继承final类
class ExtendedClass extends UtilityClass {} 

三、final修饰变量

​定义​​:声明为final的变量称为常量,初始化后不可修改。

3.1 基本数据类型变量

​规则​​:值不可变
​示例​​:

final int MAX_COUNT = 100;
MAX_COUNT = 200;  // 编译错误:不可修改值

3.2 引用数据类型变量

​规则​​:

  • 对象地址不可变
  • 对象内部状态可变

​示例​​:

final List<String> dataList = new ArrayList<>();
dataList.add("item1");  // ✔️ 允许修改内容
dataList = new LinkedList<>();  // ❌ 编译错误:地址不可变

注意事项​​:

  1. 必须显式初始化(直接赋值/构造器初始化)
  2. 静态final常量建议使用static final组合
  3. 引用类型常量的内容修改需谨慎控制

附录:final使用规范

  1. ​命名约定​​:常量全大写+下划线(MAX_VALUE
  2. ​线程安全​​:final变量保证构造完成时的可见性
  3. ​设计原则​​:
    • 工具类建议声明为final
    • 核心算法方法建议使用final修饰
    • 需要防止修改的配置参数使用final常量

本说明严格遵循Java语言规范(JLS §17.5),适用于JDK 8+版本环境。

相关文章:

  • Linux学习笔记——设备驱动
  • ‌UniApp 安卓打包完整步骤(小白向)
  • 前端面试宝典---创建对象的配置
  • android 下提示 SQLITECIPHER driver not loaded
  • 链式触发器
  • 如何使用Tomcat
  • Day 9
  • Node 处理 request 的过程中,都会更新哪些 metadata 和 property
  • 餐饮厨房开源监控安全系统的智能革命
  • 小刚说C语言刷题——第20讲 循环之嵌套循环
  • 【面经】兼顾频繁插入/删除和查询访问 非阻塞网络I/O模型 connect的阻塞性 `unique_ptr`的使用场景和析构机制
  • 20年AB1解码java
  • 【PyTorch项目实战】卷积(Convolution ) + 反卷积(Deconvolution)
  • 文章记单词 | 第27篇(六级)
  • WePY 框架:小程序开发的“Vue式”利器!!!
  • gogs私服对应SSH 协议配置
  • 基于 OpenHarmony 5.0 的星闪轻量型设备应用开发——Ch3 设备驱动开发
  • python基础:位置互换
  • 【前端】【React】useCallback的作用与使用场景总结
  • 银行业务知识序言