j**a中,final關鍵字可以用來修飾類、方法和變數(包括成員變數和區域性變數)。下面就從這三個方面來了解一下final關鍵字的基本用法。
1.修飾類
當用final修飾乙個類時,表明這個類不能被繼承。也就是說,如果乙個類你永遠不會讓他被繼承,就可以用final進行修飾。final類中的成員變數可以根據需要設為final,但是要注意final類中的所有成員方法都會被隱式地指定為final方法。
在使用final修飾類的時候,要注意謹慎選擇,除非這個類真的在以後不會用來繼承或者出於安全的考慮,盡量不要將類設計為final類。
2.修飾方法
下面這段話摘自《j**a程式設計思想》第四版第143頁:
「使用final方法的原因有兩個。第乙個原因是把方法鎖定,以防任何繼承類修改它的含義;第二個原因是效率。在早期的j**a實現版本中,會將final方法轉為內嵌呼叫。但是如果方法過於龐大,可能看不到內嵌呼叫帶來的任何效能提公升。在最近的j**a版本中,不需要使用final方法進行這些優化了。「
因此,如果只有在想明確禁止 該方法在子類中被覆蓋的情況下才將方法設定為final的。
注:類的private方法會隱式地被指定為final方法。
3.修飾變數
修飾變數是final用得最多的地方,也是本文接下來要重點闡述的內容。首先了解一下final變數的基本語法:
對於乙個final變數,如果是基本資料型別的變數,則其數值一旦在初始化之後便不能更改;如果是引用型別的變數,則在對其初始化之後便不能再讓其指向另乙個物件。
final關鍵字詳解
1 修飾變數,被final修飾的變數必須要初始化,賦初值後不能再重新賦值。注意 區域性變數不在我們討論的範疇,因為區域性變數本身就有作用範圍,不使用private public等詞修飾。2 修飾方法,被final修飾的方法代表不能重寫,但可以被過載。3 修飾類,被final修飾的類,不能夠被繼承。注...
final關鍵字詳解
final變數,如果是基本資料型別,則其數值一旦初始化後就不能被改變。如果是引用型別的變數,則對其初始化後,便不能再指向另乙個物件,但是其裡面的值是可以改變的。引用變數所指向的物件中的內容是可以改變的。final 變數 final 變數能被顯式地初始化並且只能初始化一次。被宣告為 final 的物件...
static關鍵字 final 關鍵字
特點 隨著類的載入而載入,也就是說靜態會隨著類的消失而消失,說明他的生命週期最長 靜態變數 static 關鍵字修飾成員變數,使用 類名.變數名 的形式來訪問,也可以使用 例項物件.變數名 的形式來訪問。靜態方法 static 關鍵字修飾成員函式,靜態方法可以使用 類名.方法名 的形式來訪問,也可以...