final关键字

  • final基本介绍
  • final的使用细节

final基本介绍

  • final是最终的意思,可以修饰类,属性,方法,局部变量
  • 什么时候会要使用到final呢?
    1.想要类不被继承时
    2.不希望类的某个属性的值被改变时
    3.不想父类的某个方法被子类重写时
    4.不想某个局部变量被修改时

代码演示:

public class Final01 {public static void main(String[] args) {E e = new E();//e.TAX_RATE = 0.9;TAX_RATE 被final修饰,值不能改变}
}
final class A{//1.不希望被继承的时候用final修饰,这样B就不能继承A了}
//class B extends A{ }A被final修饰,不能被继承class C{public final void tao(){//3.不想被子类重写此方法,用final修饰此方法//加了final的NUM也可以被叫做局部常量,不能修改final double NUM = 0.9;//4.如果不想局部变量被修改,用final修饰//NUM = 1.00;NUM被final修饰,值不能被改变}
}
class D extends C {
//    @Override
//    public void tao() {//重写C的方法
//        super.tao();
//    }
//    tao()被final修饰,不能被子类重写
}class E{public final double TAX_RATE = 0.8;//2.不希望类的某个属性被修改,用final修饰
}

final的使用细节

  • final修饰的属性也可以叫常量,一般用XX_XX来命名
  • final修饰的属性在被定义时必须要初始化并且不能修改,初始化可以写在三个位置:
    1.定义属性时
    2.在构造器中初始化
    3.在代码块中初始化
  • 如果final修饰的属性是静态的,那么只有两个位置可以初始化
    1.定义属性时
    2.在代码块中初始化

    不能在构造器中初始化,因为静态属性在类加载的时候就要被初始化,而构造器在实例化对象时才会被调用)
  • final类不能被继承,但是可以实例化对象
  • 一个非final类含有final修饰的方法,这个方法虽然不能被子类重写,但是可以被子类继承并使用

代码演示:

public class FinalDetail01 {public static void main(String[] args) {CC cc = new CC();//Final类虽然不能被继承,但是可以实例化对象new EE().show();//父类没有被Final修饰,但是父类方法被Final修饰,// 虽然该方法不能被子类重写,但是可以被子类继承System.out.println(GG.n1);}
}
//final属性在定义时就必须赋值,并且之后不能在修改
//1.可以在定义属性时赋值
//2.可以在构造器中赋值
//3.可以在代码块中赋值
class AA{public final double TAX = 0.05;//定义属性时赋值public final double TAX2;public final double TAX3;public AA() {TAX2 = 0.09;}//构造器中赋值{TAX3 = 0.4;}//代码块中赋值
}//如果Final修饰的属性是静态的,那么初始化的位置只能有:
//1.定义时赋值
//2.静态代码块中
class BB{public static final double TAX4 = 0.6;public static final double TAX5;public BB() {//TAX5 = 0.7;赋值失败//因为是在加载静态属性,并不是在加载实例属性,所以不能在构造器中赋值//静态属性在类加载的时候就要被初始化,而构造器在实例化对象时才会被调用}static{TAX5 = 0.8;}//静态代码块中赋值成功
}final class CC{ }class DD{public final void show() {System.out.println("show()");}
}
class EE extends DD{ }final class FF{public final void hi(){}//其实这个类已经是Final类了,这个方法就没有必要被修饰成Final方法了//因为这个方法不能被继承,所以不能被重写
}class GG{String s1 = "hello";//String是Final类,不能被继承public static final int n1 = 10;//当static和Final搭配使用时,调用这个属性,不会导致类被加载,所以下面静态代码块中的语句不会被执行static{System.out.println("静态代码块被调用...");}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94384.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94384.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/94384.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Node.js(四)之数据库与身份认证

数据库与身份认证 目录 数据库与身份认证 十三、数据库的基本概念 13.1 什么是数据库 13.2 常见的数据库及分类 13.3 传统型数据库的数据组织结构 1. Excel 的数据组织结构 2. 传统型数据库的数据组织结构 3. 实际开发中库、表、行、字段的关系 十四、安装并配置MySQ…

SpringBoot+SpringMVC常用注解

文章目录发展历程项目创建项目结构入门案例配置文件的两种方式:只能使用一种创建项目二入门案例常用知识及注解Controller:类上面加,SpringMVC的注解GetMapping:方法上面加Spring框架的两项核心功能Component:组件。控制反转,加在业务类上面&…

标准GS相位恢复算法

标准GS相位恢复算法详解与MATLAB实现 Gerchberg-Saxton (GS) 算法是一种经典的相位恢复方法,广泛应用于光学成像、衍射成像和全息技术等领域。该算法通过迭代过程从未知相位的强度测量中恢复相位信息。 算法原理 GS算法的核心思想是利用傅里叶变换关系在空间域和频率…

【Linux网络编程基础--socket地址API】

一、主机字节序和网络字节序主机字节序(Host Byte Order):你当前电脑的内存字节顺序(比如 x86 是小端)网络字节序(Network Byte Order):统一规定为大端序(高位字节在高位…

Linux路径MTU发现(Path MTU Discovery, PMTU)

Linux路径MTU发现(Path MTU Discovery, PMTU)机制是TCP/IP协议栈中确保数据包高效传输的核心技术。其核心目标是动态探测源主机到目的主机路径上的最小MTU(Maximum Transmission Unit),从而避免IP分片,提升…

【MySQL进阶】------MySQL程序

MySQL程序简介 MySQL安装完成通常会包含如下程序: Linux系统程序⼀般在 /usr/bin⽬录下,可以通过命令查看: windows系统⽬录:你的安装路径\MySQL Server 8.0\bin,可以通过命令查看: 每个 MySQL 程序都有许…

Linux大页内存导致服务内存不足

Linux大页内存导致服务内存不足的解决方法 大页内存(Huge Pages)是Linux内核提供的一种机制,用于减少TLB(转换后备缓冲区)的压力,提高内存访问性能。然而,如果配置不当,大页内存可能…

超宽带测距+测角+无线通信一体化模组:智能门锁、智能遥控器、AR头戴、智能穿戴

超宽带测距测角无线通信一体化模组:智能门锁、智能遥控器、AR头戴、智能穿戴UWB测距测角技术,因其高精度、低延迟、抗干扰能力,正广泛应用于“人-物-设备”的空间感知场景,成为构建智能空间和精准互动的重要底层技术。代表厂商与产…

基于单片机空气质量检测/气体检测系统

传送门 👉👉👉👉其他作品题目速选一览表 👉👉👉👉其他作品题目功能速览 概述 随着环境污染问题日益严重,空气质量监测成为社会关注的焦点。基于单片机的空气质量检…

网络安全 | 从 0 到 1 了解 WAF:Web 应用防火墙到底是什么?

🤔 写在前面 2020年 我参加公司的安全技能大赛,队友在实操环节启用了 WAF 防火墙,这是我第一次接触到 Web 应用防火墙。作为一个 Web 开发老鸟,真是羞愧呀😂。 🔐 Web应用防火墙 WAF 全称是 Web Applica…

服务器突然之间特别卡,什么原因?

原因总结:1.一般是本地网速的问题,服务器网速的问题,服务器CPU被占满的问题今天发现另一个会导致特别卡的问题,是主存占满也会导致卡顿。解释如下:当服务器的主存(物理内存)被完全占满时&#x…

AI应用标准详解:A2A MCP AG-UI

"OpenAI接入MCP,Google推出A2A,微软与OpenAI紧密绑定"标志着云计算竞争焦点已从"算力"和"模型参数"转向‌Agent标准协议控制权‌。在AI快速演进的今天,我们不再仅关注单个AI的智能水平,而是探索多个…

Web安全学习步骤

以下是Web安全专项学习步骤,聚焦实战能力培养,分为4个阶段资源清单**,适合从入门到进阶。重点培养漏洞挖掘能力与防御方案设计双重视角:---阶段1:Web技术筑基(1-2个月) | 领域 | 关键…

Android工程命令行打包并自动生成签名Apk

1.进入工程目录查看所有gradle任务 2.打包debug与release 打包前先生成jks签名文件test.jks 在工程的build.gradle中添加签名配置 signingConfigs {release {storeFile file("/home/dev/test.jks")storePassword "111111"keyAlias "key0"keyPas…

分布式微服务--Nacos作为配置中心(一)

1.Nacos配置远程配置中心注意总结:本地配置文件必须使用 bootstrap.yml 或 bootstrap.properties远程配置的加载优先于 application.yml,因此必须写在 bootstrap 配置文件中。本地配置文件中 file-extension 的取值仅支持两种:properties 或 …

Linux安装MySQL及链接第三方工具详细教程,带图带错误分析

本教程所有代码均为root用户权限下操作,如果不是root用户,在代码前加上(sudo )即可 一、安装MySQL服务 准备工作: 有时,系统无法解析 部分域名,导致无法获取镜像列表,从而无法安装…

WPS2024 软件下载及安装教程!

软件介绍 WPS Office是一套办公软件套装,包含WPS文字、WPS表格、WPS演示三大功能模块,可以满足常用文字处理、表格编辑和演示制作等多种办公需求,以其强大的功能和用户友好的界面赢得了众多用户的青睐。 软件:‌‌‌‌‌‌WPS Of…

ESD监控系统确保工厂生产设备的静电安全

随着电子工业的飞速发展,电子产品的精密程度不断提高,对生产环境的要求也日益严格。在许多电子制造工厂中,安装和维护有效的静电防护措施已成为保障生产安全和产品品质的关键。ESD监控系统作为静电管理的核心工具,为确保工厂设备和…

基于react的YAPI实战指南

基于react的YAPI 示例新增项目扩展遇到的问题&#xff0c;更改页面内容没有生效可能遇到的问题新增项目扩展 支持设置项目权限【公开】 <RadioGroup><Radio value"private" className"radio"><Icon type"lock" />私有<br …

docker镜像源配置教程,以及解决安装好docker配置镜像源后,出现报错。Job for docker.service failed

Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details.解决后效果&#xff1a;1、进入/etc/docker目录cd /etc/docker2、创建daemon.json文件并…