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

final在java中的作用

在Java中,final 是一个关键字,用于修饰类、方法和变量,表示“不可更改”的含义。

1、final 修饰变量

  • 表示该变量一旦被赋值后,不能被重新赋值(即常量)。

  • 如果是基本类型(如 intdouble),值不能改变。

  • 如果是引用类型(如对象、数组),引用不 能指向其他对象,但对象内部的状态可以修改(除非对象本身是不可变的,如 String)。

final int x = 10;
x = 20; // 编译错误,不能重新赋值final List<String> list = new ArrayList<>();
list.add("Hello"); // 允许,可以修改对象内部状态
list = new ArrayList<>(); // 编译错误,不能重新赋值

2、final修饰方法

  • 表示该方法不能被子类重写(Override)

  • 用于防止子类修改方法的行为。

class Parent {final void show() {System.out.println("Parent show");}
}class Child extends Parent {void show() { // 编译错误,不能重写 final 方法System.out.println("Child show");}
}

3、final修饰类

  • 表示该类不能被继承(即没有子类)。

  • 例如,Java 的 String 类就是 final 的,防止被继承和修改。

final class MyFinalClass { }class SubClass extends MyFinalClass { // 编译错误,不能继承 final 类
}

4、应用场景

  • 常量定义(final 变量)。

  • 防止方法被重写(如工具类中的方法)。

  • 防止类被继承(如安全敏感类或工具类)。

相关文章:

  • 清理 Docker 容器日志文件方法
  • 图的遍历模板
  • 嵌入式PADS中生产资料导出操作与实现
  • Python训练打卡Day50
  • C++包管理器vcpkg的使用
  • 【Erdas实验教程】021:遥感图像辐射增强( 查找表拉伸)
  • 设计模式-创建型模式(详解)
  • 车载功能框架 --- 整车安全策略
  • 贪心算法经典问题
  • 【LoRA】怎么指定LoRAConfig的target_modules
  • 自动化立体仓库堆垛机控制系统STEP7 FC1功能块 读取位置值SSI接口
  • k8s使用私有harbor镜像源
  • 2025年生命科学突破奖: GLP-1 激素机制及应用,多发性硬化症(MS)致病机制的新发现
  • 暑期车辆违停治理:视觉算法的实践路径
  • 本地 MySQL 环境连接问题排查与解决笔记
  • 一起来入门深度学习知识体系
  • 卷积神经网络的参数量及尺度变化计算
  • 【文献阅读】5%>100%: 打破视觉识别任务的完全微调的性能束缚
  • 简说ping、telnet、netcat
  • OpenVINO使用教程--resnet分类模型部署
  • 杭州开发app/百度seo排名360
  • 织梦搞笑图片网站源码/域名注册时间查询
  • 迅睿cms建站/2021最火关键词
  • 网站建设分析/北京网络优化推广公司
  • 长沙网站设计流程/手机营销软件
  • 东丽做网站公司/百度seo词条优化