java关键字之 final
2007-03-14 15:38
169 查看
故名思义,final即最后的,最终的,不可改变的。实际上,在java中,final的作用也基本上是这样的,其原因可能是出于效率或设计。final关键字可以应用于属性,方法和类。当然在这三个方面的应用是有细微差别的。
(1)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类,最好慎用。即使你很牛,认为你的方法或类是万能的,不需继承修改。但你应该知道“应用是静止的,需求是变化的
(1)final数据
使用final数据,目的是想告诉编译器这个数据一经初始化就不会再改变。
对于基本类型,final使数值恒定不变,一个既是static又是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类,最好慎用。即使你很牛,认为你的方法或类是万能的,不需继承修改。但你应该知道“应用是静止的,需求是变化的
相关文章推荐
- Java关键字final、static使用总结
- java提高篇(十五)-----关键字final
- 5.4-全栈Java笔记:面向对象进阶之对象的转型 | FINAL关键字 |抽象方法和抽象类
- Java 关键字final、static
- Java关键字final、static使用总结[转]
- Java关键字final、static使用总结
- java 中的static关键字和final关键字的不同之处
- Java中的final关键字详解
- Java关键字final、static使用总结
- 深入理解Java中的final关键字
- Java final 关键字
- java中的final 关键字
- Java中final关键字学习笔记
- Java final static abstract interface关键字介绍
- java-final关键字简述
- [java基础]final关键字
- java基础:final关键字的深入使用
- Java中的final关键字
- java2.this、static、super、final关键字,public、protect、default、private权限
- Java中的final关键字