java中final的使用小结

Java中final的使用小结


final通常指的是“这是无法改变的。”不想做改变可能出于两种理由:设计或效率。


 final 关键字可以修饰非抽象类,非抽象方法及变量 ,final不能修饰构造函数 

以下谈论可能使用到final的三种情况:数据,方法和类。


1. final数据


final常量:用final定义的基本数据常量,定义的时候就必须对其进行赋值,值一旦给定就无法改变。


final对象:用final定义的对象引用,final使引用恒定不变。一旦引用被初始化指向一个对象,就无法再把它改为指向另


一个对象。然而,对象其自身确是可以被修改的。(同样适用于数组)

  空白final

  

 所谓空白final是指被声明为final但又未给定初值的域,但是编译器要确保空白final在使用前被初始化。这在final的使用上


提供了更大的灵活性,为此,一个类中的final域就可以做到根据对象而有所不同,却又保持不变的特性。(必须在域的定义


处,或者每个构造器中用表达式对final进行赋值)


final参数

  

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


2. final方法


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


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


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


final和private关键字


类中所有的private方法都是隐式地指定为时final的。由于无法取用private方法,所以也就无法覆盖它。


可以对private方法添加final修饰词,但这并不能给该方法增加任何额外的意义。



3. final类


final类不能被继承,没有子类,final类中的方法默认是final的。如果这个类不需要有子类


类的实现细节不允许改变,并且确信这个类不会载被扩展,那么就设计为final类















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Margin_he

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值