Java SE入门及基础(33)

final 修饰符

1. 应用范围

        final 修饰符应该使用在类、变量以及方法上

2. final 修饰类

Note that you can also declare an entire class final. A class that is declared final cannot be subclassed. This is particularly useful, for example, when creating an immutable class like the String class.
注意,你也可以声明整个类的 final 。 声明为 final 的类不能被子类化。 例如,当创建不可变类(如String类)时,这特别有用。
        如果一个类被final 修饰,表示这个类是最终的类,因此这个类不能够在被继承,因为继承就是对类进行扩展。
示例
package com . we . inheritance . _final ;
//final 修饰的类不能够被继承
public final class FinalClass {
        public void show (){
                System . out . println ( " 这是最终类里面的方法 " );
        }
}
package com .we . inheritance . _final ;
// 这里会报编译错误,因此 FinalClass 不能够被继承
public class ChildClass extends FinalClass { }

3. final 修饰方法

You can declare some or all of a class's methods final. You use the final keyword in a method declaration to indicate that the method cannot be overridden by subclasses. The Object class does this—a number of its methods are final.
你可以将类的某些或所有方法声明为 final 。 在方法声明中使用 final 关键字表示该方法不能被子类覆盖。 Object 类就是这样做的 - 它的许多方法都是最终的。
示例
package com . we . inheritance . _final ;
public class FinalMethod {
        public final void show (){
                System . out . println ( " 这是一个最终方法,不能被重写 " );
        }
}
package com .we . inheritance . _final ;
public class ChildMethod extends FinalMethod {
        //这里也会报编译错误,因为父类中的 show() 方法时最终的,不可被重写
        public void show (){
        }
}

4. final 修饰变量

        final 修饰变量的时候,变量必须在对象构建时完成初始化。 final 修饰的变量称为常量。
示例
package com .we . inheritance . _final ;
public class FinalVariable {
        //final修饰的变量一定要在对象创建时完成赋值操作, final 修饰的变量称之为常量,不可被更改
        private final int number ;
        //static final修饰的变量就是静态常量
        public static final String COUNTRY = " 中国 " ;
        public FinalVariable (){
                this . number = 10 ;
        }
        public void change (){
        // this.number = 11; //因为 number 是一个常量,不能再被更改,因此会报编译错误
        }
}
思考如下代码的执行过程:
package com .we . inheritance . test ;
public class Father {
        static {
                System . out . println ( " 父类静态代码块执行 " );
        }
        public Father (){
                super ();
                System . out . println ( " 父类构造方法执行 " );
        }
}
package com .we . inheritance . test ;
public class Child extends Father {
        static {
                System . out . println ( " 子类静态代码块执行 " );
        }
        public Child (){
                super ();
                System . out . println ( " 子类构造方法执行 " );
        }
}
package com .we . inheritance . test ;
public class Test {
        public static void main ( String [] args ) {
                new Child ();
                //构建Child 对象时,发现 Child Father 的子类,而 Father 又是 Object 的子类。因此 JVM会首先加载 Object
                //然后再加载Father 类,最后再加载 Child 类。而静态代码块是在类第一次加载时执行,而且只会执行一次。因此
                //Father类中的静态代码块先执行,然后再执行Child 类中的静态代码块。然后才执行 newChild();代码。
                //父类静态代码块执行
                //子类静态代码块执行
                //父类构造方法执行
                //子类构造方法执行
        }
}

Java SE文章参考:Java SE入门及基础知识合集-CSDN博客

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

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

相关文章

docker学习笔记——Dockerfile

Dockerfile是一个镜像描述文件,通过Dockerfile文件可以构建一个属于自己的镜像。 如何通过Dockerfile构建自己的镜像: 在指定位置创建一个Dockerfile文件,在文件中编写Dockerfile相关语法。 构建镜像,docker build -t aa:1.0 .(指…

Effective C++ 学习笔记 条款22 将成员变量声明为private

下面是作者的规划。首先带你看看为什么成员变量不该是public,然后让你看看所有反对public成员变量的论点同样适用于protected成员变量。最后导出一个结论:成员变量应该是private。获得这个结论后,本条款也就大功告成了。 好,现在…

【Vue】生命周期

Vue生命周期 就是一个Vue实例从创建 到 销毁 的整个过程 生命周期四个阶段 1.创建阶段:创建响应式数据 2.挂载阶段:渲染模板 3.更新阶段:修改数据,更新视图 4.销毁阶段:销毁Vue实例 生命周期钩子 Vue生命周期过…

【每日一题】2834. 找出美丽数组的最小和-2024.3.8

题目: 2834. 找出美丽数组的最小和 给你两个正整数:n 和 target 。 如果数组 nums 满足下述条件,则称其为 美丽数组 。 nums.length n.nums 由两两互不相同的正整数组成。在范围 [0, n-1] 内,不存在 两个 不同 下标 i 和 j &…

阿里云实现两个VPC网络资源互通

背景 由于实际项目预算有限,两套环境虽然分别属于不同的专有网络即不同的VPC,但是希望借助一台运维机器实现对两个环境的监控和日常的运维操作 网络架构 如下是需要实现的外网架构图,其中希望实现UAT环境的一台windows的堡垒机可以访问生产…

前端软件工程师100问?

作为一个前端软件工程师,可能会遇到的问题非常多,以下是我为您精选的100个常见问题: 以上100个问题涵盖了前端开发的基础知识、框架应用、性能优化、安全性、兼容性、前沿技术等多个维度。作为前端软件工程师,了解这些问题有助于提…

第G3周:CGAN入门|生成手势图像

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 一、前置知识 CGAN(条件生成对抗网络)的原理是在原始GAN的基础上,为生成器和判别器提供 额外的条件信息…

【linux】04 :linix实用操作

1.常用快捷键 ctrlc表示强制停止。linux某些程序的运行,如果想强制停止,可以使用;命令输入错误,也可以通过ctrlc,退出当前输入,重新输入。 ctrld表示退出登录,比如退出root以回到普通用户,或者…

Stable Diffusion 模型下载:ZavyChromaXL(现实、魔幻)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 作者述:该模型系列应该是用于 SDXL 的 ZavyMix SD1.5 模型的延续。主要重点是获…

背包问题算法

背包问题算法 0-1背包问题二维数组一维数组 完全背包问题二维数组一维数组 多重背包问题一维数组 0-1背包问题 问题:背包的容量为9,有重量分别为[2, 4, 6, 9]的四个物品,价值分别为[3, 4, 5, 6],求背包能装的物品的最大价值是多少…

Orange3数据预处理(预处理器组件)

1.组件介绍 Orange3 提供了一系列的数据预处理工具,这些工具可以帮助用户在数据分析之前准备好数据。以下是您请求的预处理组件的详细解释: Discretize Continuous Variables(离散化连续变量): 这个组件将连续变量转…

个人网站展示(静态)

大学期间做了一个个人博客网站,纯H5编码的网站,利用php搭建了一个留言模块。 有需要源码的同学,可以联系我~ 首页: IT杂记模块 文人墨客模块 劳有所获模块 生活日志模块 关于我 一个推崇全栈开发的前端开发人员 微信: itrzzh …

elasticsearch篇

1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如: 在电商网站搜索商品 在百度搜索答案 在打车软件搜索附近…

代码随想录算法训练营Day39 || leetCode 762.不同路径 || 63. 不同路径 II

62.不同路径 每一位的结果等于上方与左侧结果和 class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m,vector(n,0));for (int i 0; i < m; i) dp[i][0] 1;for (int j 0; j < n; j) dp[0][j] 1;for (int i 1; i < m; …

使用docker部署redis集群

编写脚本 批量创建目录文件&#xff0c;编写配置文件 [rootlocalhost ~]# cat redis.sh #/bin/bash for port in $(seq 1 6); do mkdir -p /mydata/redis/node-${port}/conf touch /mydata/redis/node-${port}/conf/redis.conf cat << EOF >>/mydata/redis/node-…

安卓开发面试题

安卓开发面试题 解释一下 Android 中的四大组件。 答&#xff1a;Android 中的四大组件是 Activity、Service、BroadcastReceiver 和 ContentProvider。其中&#xff0c;Activity 负责界面展示和与用户交互&#xff1b;Service 负责后台服务处理&#xff1b;BroadcastReceiver …

新学习到的知识点【Python/C++】,持续更新中

新学习到的Python知识点 os.makedirs(gnss_path_output, 0o775&#xff09;0o775: 这是目录权限的参数。在这里&#xff0c;0o775 表示八进制数&#xff0c;对应于文件系统中的权限设置。具体来说&#xff0c;它是由三个八进制数字组成&#xff0c;分别表示所有者&#xff08;…

记录西门子:IO隔离SCL编程

在PLC变量中创建IO输入输出 在PLC类型中创建输入和输出&#xff0c;并将PLC变量的输入输出名称复制过来 创建一个FC块或者FB块 创建一个DB块 MAIN主程序中&#xff1a;

【UVM_phase objection_2024.03.08

phase 棕色&#xff1a;function phase 不消耗仿真时间 绿色&#xff1a;task phase 消耗仿真时间 run_phase与右边的phase并行执行&#xff0c;右边的phase&#xff08;run_time phase&#xff09;依次执行&#xff1a; List itemreset_phase对DUT进行复位&#xff0c;初始…

三丰云免费云服务器

背景 在2020年的双十一买过华为云的打折服务器&#xff0c;属于最低配的个人使用的服务器&#xff0c;当时价格为80~90元/年&#xff0c;由本人亲测&#xff0c;使用体验很差&#xff0c;最差的时候连后台都不一定能登上去&#xff0c;猜测应该是没有提供标明的服务器性能&…