09_面向对象高级_final与常量

Android蓝牙Mesh组网实战:从零搭建智能灯光控制系统(附完整代码) 本文详细介绍了基于Android平台开发蓝牙Mesh智能灯光控制系统的完整实战流程。从环境搭建、核心概念解析,到设备扫描配网、网络初始化、模型配置与消息通信,提供了完整的代码实现和调试技巧。重点讲解了如何使用开源Mesh库实现设备发现、分组控制、场景管理等核心功能,并分享了实际项目中遇到的典型问题与解决方案。 阅读详情

final

1. 基本介绍

final 关键字是最终的意思,可以修饰(类、方法、变量)

  • 修饰类:该类被称为最终类,特点是不能被继承了
  • 修饰方法:该方法被称为最终方法,特点是不能被重写了
  • 修饰变量:该变量只能被赋值一次
// 1. final修饰类:类不能被继承了
// 一般情况很少用,但在写工具类时可能会用得比较多,因为工具类只想给你使用工具,不想被你继承
final class A {
}
//class B extends A{}  // 报错


// 2. final修饰方法:方法不能被重写了
class C {
    public final void test() {

    }
}

public class HelloWorld {
    /**
     * 常量:public static final 修饰的成员变量,建议名称全部大写,多个单词下划线连接
     */
    public static final String THIS_NAME = "常量";  // 3. final修饰变量:有且仅能赋值一次

    public final String name = "毫无意义";  // 这种用法没有意义,同一个内容,随着对象的增加占用多份内存,又无法修改

    public static void main(String[] args) {

        // 3. final修饰变量:有且仅能赋值一次
        final double pi = 3.1415926;
        final int a;
        a = 10;  // 第一次赋值
//      a = 99;  // 第二次赋值,报错

    }

    // 3. final修饰变量:有且仅能赋值一次
    public static void buy(final int y) {
//      y = 10;  // 在形参中加final,意味着形参不能修改了,所以这里想将y改成10,会报错!
    }
}
2. 注意事项
  • final 修饰基本类型的变量,变量存储的数据不能被改变。
  • final 修饰引用类型的变量,变量存储的地址不能被改变,但地址所指向对象的内容是可以被改变的。

常量

1. 基本概念

使用了 static final 修饰的成员变量,就被称为常量;其作用,通常是用于记录系统的配置信息

2. 写法规范
  • 通常用全大写的英文单词
  • 多单词之间使用下划线连接
3. 常量的好处
  • 代码可读性更好,可维护性也更好
  • 程序编译后,常量会被 “宏替换” : 出现常量的地方全部会被替换成其记住的字面量,这样可以保证使用常量和直接使用字面量的性能是一样的。
// 源代码
public class HelloWorld {

    public static final String THIS_NAME = "小番茄";  // 常量

    public static void main(String[] args) {
        System.out.println(THIS_NAME);
        System.out.println(THIS_NAME);
        System.out.println(THIS_NAME);
    }
}
// 下面是源代码编译后,经过反编译,得到的代码
// 你会发现,常量出现的地方全部会被替换成其记住的字面量了,也就是全部被替换为"小番茄"了
public class HelloWorld {
    public static final String THIS_NAME = "小番茄";

    public HelloWorld() {
    }

    public static void main(String[] args) {
        System.out.println("小番茄");
        System.out.println("小番茄");
        System.out.println("小番茄");
    }
}
Spring AI 实战:第七章、Spring AI Advisor机制之记忆大师 从金鱼到最强大脑通过 Spring AI 的记忆功能,我们成功让 AI:记住了用户身份实现了多用户隔离做到了持久化存储最终效果用户:“和上次一样” → AI 秒懂用户:“你知道我的名字吗?” → AI:“当然,张三!AI的进化路线🐟金鱼脑 →🧠最强大脑 →🏛️记忆宫殿管理员。 阅读详情

相关推荐

从梯度泄露到数据复原:DLG与iDLG算法实战解析

本文深入解析了DLG与iDLG算法在梯度泄露与数据复原中的实战应用,揭示了联邦学习中的隐私风险。通过详细代码示例和实验数据,展示了如何从梯度中复原原始训练数据,并探讨了梯度压缩、差分隐私等防御措施。文章特别强调了iDLG算法在标签破解中的高效性,为AI安全领域提供了重要参考。

weixin_30552811的博客 191

头歌平台Java实验:Java面向对象高级

2.实现Demo接口,完善接口中的show方法,打印输出 “实现了接口中的show方法”System.out.println("实现了接口中的show方法");1.编写MyInterface接口,含一个抽象方法sayHi,返回值为void。System.out.println("接口定义完成");根据提示,在右侧编辑器补充代码,完成接口的书写和接口的实现。实现了接口中的show方法。

jing13_13的博客 7518

强化学习之课程学习法

课程学习是一种有计划的学习方法,模拟人类学习的过程。它通过设置逐步增加难度的任务序列,让学习系统从简单的任务开始,逐渐过渡到复杂任务。这一方法可以显著提高训练效率,避免智能体一开始就面临过于复杂的任务,从而导致学习过程困难。逐步难度增加:从简单的任务开始,逐步增加任务的难度,直到智能体能够解决最复杂的任务。动态调整:根据智能体的学习进展,动态调整任务的难度,保证学习的过程始终处于一个适当的挑战性范围。

m0_64087341的博客 2694

20天深度复习JavaSE的详细笔记(九)——面向对象进阶(包、权限修饰符、final、常量、枚举、抽象类、接口)

权限修饰符是用来控制一个成员能够被访问的范围,可以修饰成员变量,方法,构造器,内部类,不同权限修饰符修饰的成员能够被访问的范围将受到限制.权限修饰符四种作用范围由小到大:private->缺省->protected->public 3.final关键字 final关键字是最终的意思,可以修饰类,方法,变量 修饰类时表明该类是最终类,不能被继承 修饰方法时表明该方法时最终方法,不能被重写 修饰变量时表明该变量第一次赋值后,不能再次被赋值(能且仅能被赋值一次) 变量有几种: final修饰变量的注意:枚举是

maxiangyu_的博客 588

ensp企业网综合实验(课程设计)

使用MSTP+VRRP技术实现负载均衡以及增加网络的可靠性;出口配置napt;所有用户均为自动获取IP地址;

qq_50829760的博客 1万+

芯片设计中的setup和hold检查:为什么你的电路会跑飞?

本文深入解析了芯片设计中Setup与Hold检查的核心原理,它们是确保电路可靠运行的“黄金窗口”。通过剖析触发器物理本质、时序路径公式及检查方法,解释了Setup违例(数据太慢)和Hold违例(数据太快)如何导致电路“跑飞”,并提供了从RTL优化到物理实现的实战修复策略与协同优化技巧。

weixin_29268267的博客 474

Java 面向对象高级

什么是多态?多态是在继承、实现情况下的一种现象,表现为:对象多态、行为多态。比如:Teacher和Student都是People的子类。

2303_82176667的博客 943

HFSS微带线仿真从零到一:材料参数与求解设置优化指南

在射频电路设计中,微带线仿真涉及电磁场求解与传输线理论,其精度高度依赖材料参数和求解设置。相对介电常数、损耗角正切和导体电导率等参数直接影响特性阻抗与插入损耗,而求解频率、网格划分和参数扫描则决定仿真效率与收敛性。合理设置这些参数可显著提升S参数准确性,避免设计迭代。应用场景包括天线馈线、滤波器和微波互连。本文基于HFSS微带线仿真实践,系统讲解材料选择与参数优化全链路,帮助工程师快速复现可靠模型。

weixin_29192211的博客 79

Day09-面向对象-多态

注意:对象数组,首先要创建数组对象本身,即确定数组的长度,然后再创建每一个元素对象,如果不创建,数组的元素的默认值就是null,所以很容易出现空指针异常NullPointerException。学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写。实际上,多态在我们程序中是大量存在的,因为有了多态的存在,才使得Java语言变得更加的灵活以扩展,实现了低耦合高内聚的编码思想。实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方法,进行方法的调用,更能体现出多态的扩展性与便利。

小丁的博客 1088

逆变器技术解析:DDSRF双解耦在正负序分离中的关键作用

本文深入解析了DDSRF双解耦技术在逆变器正负序分离中的关键作用。通过建立正反旋转坐标系并利用交叉反馈解耦网络,DDSRF能快速、精准地分离电网电压中的正负序分量,从而显著提升锁相环在电网不平衡条件下的精度与系统稳定性,是现代高性能并网逆变器的核心算法之一。

m3n5b7v8c9x的博客 409

一个人干完整个运营团队!浙大开源「Easel」全链路拆解:从热点发现到自动发布,一个 Agent 直接做出来

一个人干完整个运营团队?浙大 REAL 实验室开源的 Easel,把 OpenClaw Agent、账号画像、114 个内容技能和真实媒体工具接在一起:从热点发现、选题策划、图文视频创作,到七平台适配发布、数据归因复盘,全链路一个 Agent 闭环完成,产物按项目归档。本文完整拆解其五层工作流、四层 Prompt Stack 架构、画像内联机制、Skill 三层加载与产物契约,附安装部署、.env 关键配置、Embedding 避坑、已知问题修复等实战干货,全程无虚构、可复现。

program哲学 282

面向对象_高级2

(Interface)在 Java 中是一个完全抽象的类型,定义了一组方法的规范,而不包含这些方法的实现。​ 接口支持实现类的多态性意味着你可以用同一个接口类型的引用来指向不同的实现类对象,并通过这个引用来调用接口定义的方法。虽然父子类之间的继承和接口实现都涉及到代码的复用和行为的共享,但它们的用途和设计意图有所不同。抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体。提高安全性,提高程序的可读性。理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义。

一枚工科研究生 962

基于深度学习YOLOv8的花卉检测与识别系统(附完整资源+PySide6界面+训练代码)

通过本项目,我们成功实现了基于YOLOv8的花卉检测与识别系统,涵盖了数据预处理、模型训练、推理与实时检测、以及GUI界面的实现。YOLOv8在花卉检测中的高效性和准确性为实际应用提供了强有力的支持。

斌擎科技 716

09面向对象高级特性二

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34160277的博客 138

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

面向对象编程(高级部分)——final关键字

(1)当不希望类被继承时,可以用final修饰(2)当不希望父类的某个方法被子类覆盖/重写(override)时,可以用final关键字修饰。【案例演示: 访问修饰符 final 返回类型 方法名】(3)当不希望类的某个属性的值被修改,可以用final修饰。此时这样是可以修改的。那么我们要定义为不能修改。此时想修改就会报错。

while(true){ study } 433

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

08.面向对象(this、super、final)

目录08.01_面向对象(代码块的概述和分类)(了解)(面试的时候会问,开发不用或者很少用)08.02_面向对象(代码块的面试题)(掌握)08.03_面向对象(继承案例演示)(掌握)08.04_面向对象(继承的好处和弊端)(掌握)08.05_面向对象(Java中类的继承特点)(掌握)08.06_面向对象(继承的注意事项和什么时候使用继承)(掌握)08.07_面向对象(继承中成员变量的关系)(掌握)...

dukangming的博客 250

Java学习day09:super、final关键字,抽象类和接口

Java学习day09:super、final关键字,抽象类和接口

LF__plus的博客 553

JavaSE 09 面向对象(下)

JavaSE 09 面向对象(下)

loetca 643

09 - 面向对象编程(高级部分)

类变量和类方法;main方法;代码块;final关键字;抽象类;接口;内部类

2301_76354366的博客 1092

Day09 面向对象(覆写、final、多态、abstract、Interface、Object)

abstract是修饰符,表示抽象的,用来修饰抽象类和抽象方法;用abstract修饰的类是抽象类,并且抽象类不能创建对象,而且抽象类一般主要是用于被继承。注意:abstract和final不能同时出现。子类如果继承了抽象类,那么需要实现所有抽象方法,否则该子类就需要用abstract修饰;普通类继承抽象类需要实现所有抽象方法;抽象类继承抽象类,需要实现0~N个抽象方法;抽象类可以看做特殊的类,类能做的它都能做,只不过,抽象类不能创建对象,但是可以有变量、构造方法、抽象方法、成员方法。

m0_70140144的博客 187

第08章_面向对象编程(高级)拓展练习(关键字:static,代码块,关键字:final,抽象类和抽象方法,接口,内部类,枚举类,注解,包装类)

1、银行账户类2、图形类3、数组工具类4、二分查找5、二分查找6、素数

小丁的博客 1252

Java---面向对象编程---final关键字

本文介绍了Java中final关键字的使用方法和注意事项。final可修饰类、属性、方法和局部变量,用于限制继承、重写和修改。重要特性包括:final修饰的属性必须初始化且不可修改;final类不可继承但可实例化;final方法不可重写但可继承;final与static搭配可提高效率。注意事项:final类无需再修饰方法为final;不能修饰构造器;包装类和String类都是final类。合理使用final能增强代码安全性和性能优化。

2301_80275859的博客 415

Java小白StudyDay09---代码块、final、多态、异常

代码块、final、多态、异常一、代码块二、final三、多态四、异常 一、代码块 1.静态代码块 位置:类里方法外,格式:static{ } 执行时机:随着类的加载而加载,优先与对象加载,并且只加载一次 作用:用于加载一些需要第一时间就加载并且只加载一次的资源 2.构造代码块 位置:类里方法外,格式:{ } 执行时机:创建对象时触发,优先于构造方法执行 作用:用于提取所有构造方法的共性功能 3.局部代码块 位置:方法里,格式:{ } 执行时机:调用当前所处方法时才触发 作用:用来控制变量的作用范围,变量的

走出自己的Java之路 247

初识JAVA09:方法的重写、super关键字、final关键字、Object类

JAVA面向对象03面向对象方法的重写super关键字final关键字Object类toString()equals() 面向对象 方法的重写 方法的重载 Overload 方法的重写 Override ​ 共同点:都是方法的特性 ​ 不同: ​ 重载的三个条件: ​ 同一个方法内 ​ 方法名相同 ​ 参数列表|方法签名不同 ​ 重写的三个条件: ​ 不同的方法内 ​ 继承关系|实现关系 ​ 方法签名相同 ​ 调用: ​ 如果子类中存在方法的重写,当通过子类对象调用的时候,

weixin_43980278的博客 206

【Java知识点总结】 final关键字与抽象类

final关键字: 概念: 学习了继承我们发现继承有一个弊端,就是它会打破封装性;如果不让其他类继承该类,就不会有重写了,→可以通过Java中的几个关键字来实现,final(最终化)。 final关键字是一个修饰符,可以修饰类、方法、变量(成员变量、局部变量、静态变量)。 什么时候用? 当程序中一个数据使用时是固定不变的,这时为了增加阅读性,可以给该数据起个名字,这就是变量,为了保证这个

高岩 is me 1094

非零基础自学Java (老师:韩顺平) 第10章 面向对象编程(高级部分) 10.5 final关键字

非零基础自学Java (老师:韩顺平) 第10章 面向对象编程(高级部分) 10.5 final关键字

代码改变世界 339

JAVASE基础09

01-面向对象(继承-子父类中的构造函数-子类的实例化过程) 子父类中的构造函数的特点。 在子类构造对象时,发现,访问子类构造函数时,父类也运行了。 为什么呢? 原因是:在子类的构造函数中第一行有一个默认的隐式语句。 super(); 子类的实例化过程:子类中所有的构造函数默认都会访问父类中的空参数的构造函数。 02-面向对象(继承-子父类中的构造函数-子类的实例化过程-细节) 为什么子类实例化的时候要访问父类中的构造函数呢? 那是因为子类继承了父类,获取到了父类中内容(属性),所以在使用父类内容之前, 要

weixin_45532679的博客 305
上一篇: 08_面向对象高级_多态
下一篇: 10_面对对象高级_抽象类
code_stream
博客等级 码龄4年 1238粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值