JAVA中的final

来源:互联网 发布:window读取mac硬盘 编辑:程序博客网 时间:2024/06/05 22:44

JAVA中的final的基本意思是这个东西不能更改,在对于数据,方法和类的时候,又有不同的意思。


数据成员:

如果是基本类型,则意味着这是一个数据常量,无法更改,如果给这个数据赋了一个编译时的初始值的话, 那么意味着这个数据时编译时常量。如果赋了一个运行值的初始值的话,那么这个数据是一个运行时的常量。

如果是一个引用,那么并不是以为着引用所指的对象不能被更改,而是这个引用不能更改,不能指向其他的对象,而这个引用所指向的对象是可以被更改的。数列就是一个对象。

如果把一个方法的参数定义为final,那么意味着这个方法不能更改这个参数所指向的对象。

如果把一个方法定义为fina时,一般有两个初衷。 首先,是程序员不想让这个方法在继承的过程中被更改,如果定义为final,那么这个方法是不能被重写的。第二一个final的方法可以起到提高的效率的作用。JVM在处理一个final方法的调用的时候,会跳过传统的调用的方式,而直接调用final的方法代码体。

但是,如果你将一个方法定义为private,那么这个方法其实就是一个final方法了,因为你将无法重写这个方法,当然你依然可以定义一个方法为private final,但是并没有什么意义。


最后,如果把一个类声明为final,那么意味着这个类是不能被继承的,不能被更改的,final类中的方法不用一定声明为final,但是如果这个类已经是一个final的话,那么其中所有的数据变量和方法变量都隐私地被声明为final了。


原创粉丝点击