final数据
1、当final关键字放于基本数据类型之前,这个数据是固定不变的。
2、当final关键字放于对对象的引用之前时,指的是这个引用固定不变。也就是说,这个引用一旦被初始化指向一个对象,就无法再使它指向另一个对象,但这个对象自身是可以改变的。
3、对于static final,只能占用一段不能改变的空间。
空白final
空白final指被声明为final但未给定初值的域,例如。
final int j;
无论什么情况,编译器都确保空白final在使用前必须被初始化
final参数
Java允许在参数列表中以声明的方式将参数指明为final,表示在方法中无法更改参数引用所指向的对象。
例如:
class Car{
String name;
Car(String name){
this.name=name;
}
}
public class test{
void getCar(final Car car){
//car=new Car("benz");//Illegal
System.out.println(car.name);
}
}
final方法
1、使用final方法,可以防止任何继承类修改它的定义。这样确保在继承中使方法的行为保持不变且不会被覆盖。
2、类中所有的private方法都隐式地被指定为final
final类
final类无法被继承