final变量可被用于修饰变量,方法和类,表示所修饰的变量,方法和类不能被改变。
1、final修饰变量时
a、final修饰成员变量
由于final修饰的变量不能被重新赋值,所以在定义一个被final修饰的变量时一定要对其进行赋初值,不然它的默认值是0、'\u0000'、false、或null,这样其就失去了存在的意义。
b、final修饰局部变量
如果final修饰的局部变量一开始没有被赋值,那么可以在后面的代码中对其进行赋值,但是只能一次。
public class FinalLocalVariable{
public static void main(String[] args){
final int a;
a=2;//这是被允许的
a=3;//对a重复赋值,不被允许
final String str = "good";
str = "thanks";//不被允许,重复赋值
}
}
注意:final修饰引用类型的变量只是保证修饰的引用的地址不会被改变,但是其值是完全可以被改变的。
2、final修饰方法时
final修饰的方法不能被重写。如Object类里的getClass()方法就是被final修饰的。
3、final修饰类时
final修饰的类是终极类,不能被继承。如String类和Math类