標籤:世界 感悟 不能 作用 nbsp level 預設 對象 構造方法
近日,讀了孫衛琴老師的《Java物件導向編程》一書,心中頗有些感悟,想著將其記錄下來。
Java中的修飾符
在Java語言中,有這樣一些單詞(說得再準確點兒,應該是形容詞):abstract(抽象的)、static(靜態)、public(公用的)、protected(受保護的)、private(私人的)、synchronized(同步的)、native(本地的)、transient(暫時的)、volatile(易失的)和final(不可改變的),它們被成為修飾符,這些修飾符可以修飾類、變數和方法。靈活、正確地運用這些修飾符,會使我們的軟體程式更貼切地類比真實世界中的系統,並且有助於提高軟體系統的可複用性、可維護性、可擴充性和系統的運行效能。
Java中的修飾符的範圍
- abstract:類、成員方法
- static:成員方法、成員變數
- public:類、成員方法、構造方法、成員變數
- protected:成員方法、構造方法、成員變數
- private:成員方法、構造方法、成員變數
- synchronized:成員方法
- native:成員方法
- transient:成員變數
- volatile:成員變數
- final:類、成員方法、成員變數、局部變數
上面所提到的類僅限於頂層類(Top Level Class),而不包括內部類(定義在類或方法中的類)。從上面列出的一系列範圍可以看出,局部變數只能用final修飾,修飾頂層類的修飾符包括:abstract、public以及final,static、protected和private不能修飾頂層類。
存取控制修飾符
物件導向的基本思想之一是封裝實現細節並且公開介面。Java語言採用存取控制修飾符來控制類,以及類的方法和變數的存取權限,從而向使用者只暴露介面,但能隱藏實現細節。存取控制分4種層級:
- 公開層級:用public修飾,對外公開。
- 受保護層級:用protected修飾,向子類及同一個包中的類公開。
- 預設層級:沒有存取修飾詞,向同一個包中的類公開。
- 私人層級:用private修飾,只有類本身可以訪問,不對外公開。
存取層級僅僅適用於類及類的成員,而不適用於局部變數。局部變數只能在方法內部被訪問,不能用private、protected或public來修飾
Java物件導向編程之Java語言中的修飾符