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

final 使用

(1) final 变量(常量)

  • 局部变量:一旦赋值,不可修改

  • 成员变量:必须在声明时或构造方法中初始化

  • 静态变量:必须在声明时或静态代码块中初始化

final int x = 10;          // 局部 final 变量
x = 20;                    // 编译错误!不能重新赋值class MyClass {final int y;           // final 成员变量final static int Z;    // final 静态变量static {Z = 100;           // 静态代码块初始化}public MyClass() {y = 20;           // 构造方法初始化}
}

关键点

  • 基本类型:值不可变(如 final int x = 10

  • 引用类型:引用不可变,但对象内部状态可能可变(如 final List<String> list = new ArrayList<>() 仍可 add()

(2) final 方法(不可重写)

  • 子类不能重写 final 方法

  • 用途:防止继承破坏关键逻辑(如 Object.getClass()

示例

class Parent {public final void show() {System.out.println("Parent's final method");}
}class Child extends Parent {// @Override  // 编译错误!不能重写 final 方法public void show() { } 
}

注意private 方法隐式是 final 的,因为子类无法访问。

(3) final 类(不可继承)

  • 该类不能被继承(如 StringInteger 等核心类)

  • 用途:保证类的行为不被修改,增强安全性

final class ImmutableClass { }
// class SubClass extends ImmutableClass { }  // 编译错误!

总结

场景作用典型用例
final 变量防止重新赋值常量、方法参数、共享数据
final 方法禁止子类重写模板方法模式、关键算法
final 类禁止继承工具类、核心不可变类(如 String
http://www.xdnf.cn/news/15716.html

相关文章:

  • oracle 11.2.0.4 RAC下执行root.sh脚本报错
  • leetcode2_135.分发糖果
  • ollma dify 搭建合同审查助手
  • 【Python】一些PEP提案(三):with 语句、yield from、虚拟环境
  • MySQL中的索引和事务
  • vue2 面试题及详细答案150道(81 - 90)
  • 解锁 Java 并发编程的奥秘:《Java 并发编程之美》中的技术亮点与难题攻克
  • FastAdmin后台登录地址变更原理与手动修改方法-后台入口机制原理解析-优雅草卓伊凡
  • 【计算机网络】MAC地址与IP地址:网络通信的双重身份标识
  • TCP通讯开发注意事项及常见问题解析
  • 接口测试的原则、用例与流程详解
  • 百度权重提升技巧分析:从底层逻辑到实战策略
  • 某邮生活旋转验证码识别
  • 函数返回值问题,以及返回值的使用问题(c/c++)
  • 4G模块 A7680发送中文短信到手机
  • 2-大语言模型—理论基础:详解Transformer架构的实现(2)
  • 雾化技术赋能 全鼎如何打造软磁材料护城河
  • 最小生成树算法详解
  • 基于单片机红外感应智能卫生间系统仿真论文
  • 开源Docmost知识库管理工具
  • Web开发 02
  • MariaDB 10.4.34 安装配置文档(Windows 版)
  • ChatGPT Agent:统一端到端Agentic模型的技术革新与行业影响
  • 深度学习模型开发部署全流程:以YOLOv11目标检测任务为例
  • 【CF】⭐Day104——Codeforces Round 840 (Div. 2) CE (思维 + 分类讨论 | 思维 + 图论 + DP)
  • hadoop(服务器伪分布式搭建)
  • 一文讲清楚React性能优化
  • 谷歌浏览器Chrome的多用户配置文件功能
  • 电脑视频常用几种接口
  • Python 数据分析与可视化:从基础到进阶的技术实现与优化策略