final用作关键词根据上下文不同可能会有细微的差别,但通常是指这个东西是无法改变的。
一,final数据
①对一个变量做final声明,表示这个变量是无法改变的,这有点类似c++中的const,final常和static一起使用,表示该变量在程序开始时就被初始化并且无法改变。当然对一个引用做final声明时表示无法通过该引用来改变该引用指向的变量,这又类似于c++的底层const。
②java允许在参数列表中使用final,这意味着无法在方法中更改参数引用所指向的对象,这也和c++中const类似,但貌似没有必须同为底层const的限制?
③空白final,貌似意义不大,就不写了。
二,final方法
使用final方法的原因有两个,一是将方法锁定,和c++中一样,任何继承类都无法修改它的含义,第二个原因是提高程序效率,这点我还不太清楚,大概有点像c++中inline的内联函数?
另外,类中所有private方法都是隐式final的,你也可以用private+final修饰一个方法,但这和单纯用private修饰没有任何区别。
三,final类
这个比较简单,将一个类定义为final意味着你不希望别人继承它,它不会有子类。