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

final 总结

final

 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变、设计或效率。

final类不能被继承,没有子类,final类中的方法默认是final的。

1、final类

final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会载被扩展,那么就设计为final类。

final方法不能被子类的方法覆盖,但可以被继承。

2、final方法

如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。

使用final方法的原因有二:

第一、把方法锁定,防止任何继承类修改它的意义和实现。

第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。

final成员变量表示常量,只能被赋值一次,赋值后值不再改变。

3、final变量(常量)

 用final修饰的成员变量表示常量,值一旦给定就无法改变!

 final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。

 从下面的例子中可以看出,一旦给final变量初值后,值就不能再改变了。

 另外,final变量定义的时候,可以先声明,而不给初值,这中变量也称为final空白,无论什么情况,编译器都确保空白final在使用之前必须被初始化。但是,final空白在final关键字final的使用上提供了更大的灵活性,为此,一个类中的final数据成员就可以实现依对象而有所不同,却有保持其恒定不变的特征。

final不能用于修饰构造方法。

当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值。

转载于:https://www.cnblogs.com/xxym/p/9310773.html

相关文章:

  • Swagger结合mustache模板生成后台接口代码、以及前后台建模代码
  • Java 6中的synchronized
  • less匹配模式
  • 聊聊世界编程语言排行榜的事
  • CF467C George and Job
  • EF6 CodeFirst使用MySql
  • java面试题干货96-125
  • 计算机专业的男女问题
  • 夕阳下,归校的背影
  • 小程序之map地图上不能在覆盖层
  • 大家好,我是新人,请多多关照,(*  ̄3)(ε ̄ *)么么
  • mangodb的存储
  • DICOM文件添加私有Tag(DCMTK Private Tag)
  • unity中NavMeshAgent有关知识
  • Linux C语言编程基本原理与实践
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【技术性】Search知识
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Intervention/image 图片处理扩展包的安装和使用
  • JWT究竟是什么呢?
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • python_bomb----数据类型总结
  • quasar-framework cnodejs社区
  • Redis的resp协议
  • SpringBoot 实战 (三) | 配置文件详解
  • TCP拥塞控制
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 百度小程序遇到的问题
  • 微信小程序--------语音识别(前端自己也能玩)
  • 想写好前端,先练好内功
  • 写给高年级小学生看的《Bash 指南》
  • 学习笔记TF060:图像语音结合,看图说话
  • 译有关态射的一切
  • 因为阿里,他们成了“杭漂”
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 阿里云ACE认证学习知识点梳理
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (1)bark-ml
  • (11)MATLAB PCA+SVM 人脸识别
  • (2)(2.10) LTM telemetry
  • (4)Elastix图像配准:3D图像
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (强烈推荐)移动端音视频从零到上手(下)
  • (一)VirtualBox安装增强功能
  • (一一四)第九章编程练习
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .Net Core和.Net Standard直观理解