Programmer’s Blog

Friday, July 21, 2006

 

java 中的final意义

java 中的final意义

URL http://blog.iyi.cn/rimen/2006/05/java_final.html


如果一个数据既是static又是final,那么他会拥有一块无法改变的存储空间。
final data: 当final用于基本数据类型时,final让其值(value)保持不变,但是当用于object reference时,final仅让reference保持不变。也就是说当reference一旦被初始化用于代表某个对象时,便再也不能改变指向另一个对象,但对象本身的内容确实可以改变的。final对array的作用和对reference的作用一样;
blank finals:java允许将数据成员声明为final,却不赋初值。但是,blank finals必须在使用之前初始化,且必须在构造函数中初始化;
final arguments: 声明arguments为final,可以保证该argument不能再被指向它处,当argment是基本数据类型时,就以为着值不能改变;
final methods: 可以锁住该method,不让继承类改变其意义;允许编译器对此method作为inline method调用;
fianl vs private: class所有的private methods自然而然都是final,private methods仅仅是隐藏class中的某段程序代码而已,不能被overrid,即使derived class中恰好有同名的method,也不会产生什么效果;
final classes: 当把一个class声明为final时,也就决定了此class将不能被继承。final classes的methods也将全部是final;但其中的数据成员可以是final的也可以不是,他们将服从final data的原则。

Comments: Post a Comment

Links to this post:

Create a Link



<< Home

Archives

July 2006   November 2006  

This page is powered by Blogger. Isn't yours?