在 JAVA 語言中,有很多特殊的關鍵字( final,static,super,supert,this 等)是每個 JAVA 程序員必須應該搞清楚的,不僅在實際開發中會用到,而起也是面試或考試題里面青睞的考點之一。
本文是自己關于關鍵字 final 的一些總結。 final 關鍵字主要應用在標志和聲明類,成員變量和方法為不可變,通過這個基本定義可以擴展到 final 可以限制類和方法的繼承關系。
final 變量
final 變量分為簡單變量和對象變量。聲明 final 的簡單變量,表示該變量從初始化后其值(簡單變量直接存儲值,而不是引用)就不會改變,需要注意的是在使用其他類提供的 public 的 final 簡單變量的時候,就算其他類改變了其定義并重新編譯,使用的類在重新編譯前該值是不會改變的(參考: http://blog.csdn.net/daniel112/archive/2006/10/11/1330255.aspx )。聲明為 final 的對象變量表示一旦初始化其引用不會改變。
final 變量初始化化可以在聲明時或構造函數中完成。
??
/**
?聲明時候直接初始化?
*/
??Public?
final
?String?FINAL_STR?
=
?“final_str”;
??
/**
?在構造函數中初始化?
*/
??Private?
final
?String?FINAL_STR1;
?
??Public?MyFinalTest(){
????FINAL_STR1?
=
?“asdfasd”;
}
}
final 類
定義為 final 的類表示該類不能被繼承,也就是說該類是一個功能設計完成,不在需要擴展的類。同時該成員方法也對應默認標志為 final ,成員變量隨定義而定。
??Public? void ?method1(){}
?? /**
??*?沒有必要加關鍵字final
?? */
??Public? final ? void ?method2(){}
}
final 方法
定義為 final 的方法表示該方法不能被子類覆寫( override )。