final修飾的變量不可以改變,一旦獲得初始值,該final變量的值就不能被重新賦值。
1.final成員變量(必需由程序員顯式地指定初始值)
類變量:必須在靜態初始化塊中或者聲明該變量時指定初始值,二者選一
實例變量:必須在非靜態初始化塊,或聲明該變量,或構造器中指定初始值
2.final局部變量
final定義的局部變量可以在定義的時候指定默認值,也可以不指定默認值。如果在定義的時候沒有指定默認值,則在以後的代碼中可以指定默認值,但只能指定一次。
3.final修飾基本類型變量和引用類型變量的區別
當final修飾基本類型變量時,不能對基本類型對象變量重新賦值。但當final修飾引用類型變量時,它保存的僅僅是一個引用,final只是保證這個應用類型變量的引用地址不變,即一直引用同一個對象,但這個對象完全可以發生改變。
public class Test()
{
public static void main(String[] args)
{
//final修飾數組變量,是一個引用變量
final int[] iArr = {5,6,7,8};
//輸出5 6 7 8
System.out.println(Arrays.toString(iArr));
//對數組元素進行賦值,合法
iArr[2] = -8 ;
//輸出5 -8 7 8
System.out.println(Arrays.toString(iArr));
}
}
4.final方法
final修飾的方法不可被重寫
5.final類
final修飾的類不可以有子類,不可被繼承