final關鍵字

一、final修飾屬性程序員

final修改的類屬性、實例屬性能指定初始值的地方以下:安全

①類屬性:靜態初始化塊中、聲明屬性時指定初始值;性能

②實例屬性:非靜態初始化塊、聲明該屬性、構造器中指定初始值。spa

與普通成員變量不一樣的是,final成員變量(包括實例屬性和類屬性)必須由程序員顯式初始化,系統不會對final成員進行隱式初始化。設計

final修飾的形參不能在方法中再被賦值。對象

final修飾的變量是基本數據類型,在編譯時就已經肯定,因此命名應該知足常量的規範,若修飾引用變量,沒法在編譯時就得到值,必須在運行時才能獲得值,如final AClass a = new AClass();,編譯時系統不會建立一個AClass對象來賦給a,因此a變量無需使用常量命名規則。繼承

 

二、final修飾方法編譯

該方法不可被子類重寫,依然能夠重載。變量

 

三、final修飾類:與可變不可變沒有關係擴展

1.final修飾類 不能被繼承,也沒有子類;

2.不是專門爲繼承而設計的類,類的自己方法之間有複雜的調用關係。假如隨意建立這些類的子類,子類可能會錯誤的修改父類的實現細節;

3.出於安全緣由,類的實現細節不容許有任何改動;

4.在建立對象模型的時候,確信這個類不會再被擴展;

相關文章
相關標籤/搜索