您的位置:首页 > 编程语言 > Java开发

java关键字之 final

2007-03-14 15:38 169 查看
故名思义,final即最后的,最终的,不可改变的。实际上,在java中,final的作用也基本上是这样的,其原因可能是出于效率或设计。final关键字可以应用于属性,方法和类。当然在这三个方面的应用是有细微差别的。

(1)final数据
使用final数据,目的是想告诉编译器这个数据一经初始化就不会再改变。

对于基本类型,final使数值恒定不变,一个既是static又是final的字段只占据一段不能改变的存储空间;而对于对象引用,final使引用恒定不变。一旦引用被初始化指向一个对象,就无法在把他改为指向另一个对象,但对象自身是可改变的(同样适用于数组,其也是对象)。
带final的数据定义格式如下

public final int i = 0;

更一般的定义如下

public static final int VAL_STAT = 10;

对于如上的定义,要注意定义格式,带有恒定初始值(编译时刻变量,非运行时刻)的static final 基本类型全用大写字母命名,并且字与字之间用下划线隔开(这是规范)。
对于以上两种格式的定义,第二种更常用。

(1)final方法
使用final方法原因有两个。
第一,把方法锁定,任何继承类都不能修改它(不被覆盖)。
第二,效率。针对该方法的所有调用都转为内嵌调用。即在编译过程中,当编译器发现一个final方法调用时,它会以该final方法体中的实际代码的副本来代替方法调用,而不是传统的方法调用(本程序指针压栈,程序指针转向调用代码,执行后返回结果,原调用程序指针出栈)。

对于final方法,并不是很常用,所以这里不列出例子了。

(1)final类
使用final类的原因只有一个,就是你不打算继承该类,也不许其他人继承。这个类永远不需改变。
对于final方法和final类,最好慎用。即使你很牛,认为你的方法或类是万能的,不需继承修改。但你应该知道“应用是静止的,需求是变化的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: