final 关键字

P140

final 可能用到的三种情况:数据,方法和类
final 可以先定义了后,然后再构造函数中初始化

final 数据

  • 使用原因
    1.一个永不改变的编译时常量
    2.一个在运行时被初始化的值,而你不希望它被改变

一个既是 static 又是 final 的域只占据一段不能改变的存储空间

  • 易混点:
    final 基本数据类型
    final 对象

final 基本数据类型,指的是数值不变,如 final int d= 1;,那么 d 这个变量变量就不能再给它赋其他值,错误:d=2;

final 对象引用,指的是引用的对象不变,如 final Value v = new Value(1);
v1.i++,可以对 Value 对象的成员变量进行修改,但重新为v赋值一个新的对象是错误的 v = new Value(2)

final 方法

  • 使用原因
    1.要把方法锁定,以防任何继承类修改它的含义,这样在子类继承父类时,该方法的行为将保持不变,并且不会被覆盖
    2.效率 (早期建议的做法)

  • final 和 private 关键字
    1.类中所有的 private 都隐式地指定为是 final
    即平时定义的 private type function(){} 实际上是 private final type function(){}

  • final 参数
    将参数列表的参数声明为 final ,意味着你无法在方法中更改参数引用所指向的对象。这点跟 final 对象引用相似。这一特性主要用来向匿名内部类传递数据

final 类

  • 原因
    该类不能被继承,即该类没有子类,这样类中的所有方法都默认隐式指定为 final
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 你总以为你会了,其实你只是一知半解。 final 关键字概览 final关键字可用于声明属性、方法、参数和类,分别...
    Sharember阅读 7,278评论 2 26
  • 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的...
    WilsonMing阅读 3,770评论 0 5
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,328评论 18 399
  • 其实人生的诗意隐藏在生活的每一个角落里,等待人们去发现,为人们涵养一颗诗心。今天,就让我们一起在诗意中向着温暖...
    木薯羹阅读 1,076评论 0 0
  • 《三观易碎》中有这么一段故事:实习生小丹没有过完试用期,就从王潇的公司离职了。离职前在明知王潇在参加访谈节目录制,...
    徐二卷的记录本阅读 4,612评论 2 1

友情链接更多精彩内容