【java】java中final用法

参考:http://www.99inf.net/SoftwareDev/Java/55116.htm

http://bc10360114.iteye.com/blog/425951

1、final修饰成员变量

在定义变量前面加上final表示:变量一旦被初始化便不可以改变,这里不可以改变的意思是(1、对基本数据类型来说是值不变 2、对与对象变量来说其引用不可以再变)

初始化在两个地方,1是在定义处,2是在构造函数出,这两个地方只能选其一,不能既在定义时赋值又在构造函数中赋值。

对对象变量来说引用不变,是指在修饰对象或者数组时,表示对象或者数组的引用恒定不变,但对象本身是可以修改的。

【在Java中,我们无法让对象被修饰为final,而只能修饰对象的引用,这意味着即使你写public final A a = new A(); 事实上a指向的对象的数据依然可以被修改,不能修改的是a本身的引用值,即你不能再对a进行重赋值。同样的情况出现在数组中,比如public final int[] a = {1, 2, 3, 4, 5},事实上a中的数值是可修改的,即可以写a[0] = 3。据目前了解,java中数组内的数据是无法修饰为不可修改的,而C/C++可以。】防止传递参数中的引用被修改

2、final修饰方法

一. 把方法锁定,使得在子类(导出类)中不能修改它的含义。

二.效率,一个final方法被调用时会转为内嵌调用,不会使用常规的压栈方式,使得运行效率较高,尤其是在方法体较简单的情况下,但也并不绝对。(与C++中的inline关键字类似)
 特别的:类中的所有private方法都隐式地指定为是final,所以在继承关系中不存在覆盖问题。

3、final修饰类

当一个类被修饰为final时,它的含义很明确,就是不允许该类被继承,也就是说,该类“绝后”了,任何继承它的操作都会以编译错误告终。

和普通类的使用几乎没有差别,只是失去了被继承的特性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值