final關鍵字

final主要應用於三種情況:數據、方法和類。

一、final數據

    許多編程語言都有某種方法,來向編譯器告知一塊數據是恆定不變的。有時數據的恆定不變是很有用的,比如:

    1.一個永不改變的編譯時常量。

    2.一個在運行時被初始化的值,而你不希望它被改變。

    在Java中,這類常量必須是基本數據類型,並且以關鍵字final表示。在對這個常量進行定義的時候,必須對其進行賦值。一個既是static有事final的域只佔據一段不能改變的存儲空間。當對對象應用而不是基本類型運用final時,其含義會有一點不一樣。對於基本類型,final使數據恆定不變;而對於對象引用,final使引用恆定不變。一旦引用被初始化指向一個對象,就無法再把它改爲指向另一個對象。然而,對象其自身確實可以被修改的,Java並未提供使任何對象恆定不變的途徑。這個同樣適用數組,它也是對象。注意,根據慣例,既是static又是final的域一般用大寫表示,並使用下劃線分隔各個單詞。


二、final方法

    使用final方法的原因是把方法鎖定,以防止任何繼承類修改它的含義。這是出設計的考慮:想要確保在繼承中使方法行爲保持不變,並且不會被覆蓋

    final和private關鍵字

    類中所有的private方法都隱式的指定爲final的。由於無法取用private方法,所以也就無法覆蓋它。可以對private方法添加final修飾詞,但這並不能給該方法增加任何額外的意義。


三、final類

    當將某各類的整體定義爲final時,就表明了你不打算繼承該類,而且也不允許別人這麼做。由於final類禁止繼承。所以final類中所有的方法都隱式指定爲final,因爲無法覆蓋它們。在final類中可以給方法添加final修飾詞,但沒有任何意義。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章