final關鍵字在Java中是一個保留的關鍵字,一旦將引用聲明為final類型,則不能改變這個引用。
一. 修飾變量
final關鍵字修飾的成員變量或本地變量都稱為常量。主要運用於以下兩個地方:
(1)編譯期常量,永遠不可改變,只能使用基本類型,且必須在定義時進行初始化。
(2)運行期間。我們希望它可以根據對象的不同而表現不同,但同時又不希望它被改變。可以是基本類型,也可以是引用類型。基本類型不可變的是其內容,引用類型不可變的是引用,內容是可變的。
二.修飾方法
final關鍵字修飾的方法不可被子類重寫。
三.修飾類
final關鍵字修飾的類不可被繼承。
四.修飾方法參數
final關鍵字修飾參數,代表了該參數不可更改,在方法中不可更改該參數的值.
在匿名內部類中,為保持參數的一致性,若所傳的方法的形參需要在內部類中使用時,需要聲明為final。
簡單理解就是,拷貝引用,為了避免引用值發生改變,例如被外部類的方法修改等,而導致內部類得到的值不一致,於是用final來讓該引用不可改變。
故如果定義了一個匿名內部類,並且希望它使用一個其外部定義的參數,那麼編譯器會要求該參數引用是final的。
參考文章:http://www.cnblogs.com/chenssy/p/3390871.html