1. 程式人生 > >Java程式設計思想 第六章:訪問許可權控制

Java程式設計思想 第六章:訪問許可權控制

一個優秀的程式設計師是通過不斷的重構程式碼讓自己的程式變得更加易用、可讀和完善的。在重構修改的過程中,如果是一個類庫編寫人員,那麼怎麼樣保證自己修改的部分不會影響到客戶端編寫人員(即使用這個類庫的程式設計師)呢?同時也要避免他們對自己類庫內部的程式進行改動。Java中提供了訪問許可權控制的概念,提供了三種不同級別的訪問控制,訪問開放程度由高到低依次為“public”、“protected”“private”,這樣就能區分哪些內容是可用的,哪些內容是不可用的,從而將變動的事物與不變的事物區分開來。那麼如何將所有的構建捆綁到一個內聚的類庫單元中呢?Java提供了package加以控制,而訪問許可權控制的作用會因為類庫是否在一個相同的package還是不同的package受到影響。

1. 包:庫單元

包內包含一組類,它們在單一的名字空間下被組織在了一起。宣告一個類所屬的包使用package關鍵字,同時在另一個包中的類要訪問其它包中的類使用import關鍵字匯入要使用的包。這種方式可以在一定程度上避免重名的問題,因為包的名字要避免重名,而不同包內的類是可以根據具體的需求命相同的名字。包有效的將不同類的內容進行了隔離,同時也可以相互聯絡。

2. Java訪問許可權修飾詞

  1. public:所有可見,被public修飾的內容在同一個包中的所有類都可見。同時Java提供預設的訪問許可權,即不被任何修飾符修飾的內容預設為public許可權。
  2. private:私有可見,只有該類可見,該類的物件都不可見。如果一個類的建構函式被宣告為private,那麼就不能通過這個類的建構函式來進行初始化物件。
  3. protected:受保護的可見,與private不同,除了只有自己的類可見之外,該類的繼承者也可見被修飾的域。除此之外還可以被當前包的類訪問,但是其它包的類不可以訪問,即便是使用了import的關鍵字。

訪問許可權控制對程式結構控制的重要手段

3.介面與實現

這裡沒有詳細的介紹Java中的介面跟實現,主要是基於訪問許可權控制來說的。一般的類開發者,為了方便他人使用,會在具體方法實現外部建立一層介面,只提供介面給外部開發人員呼叫,而不提供具體實現的方法。

4.類的訪問許可權

在Java中,訪問許可權控制也可以確定包中的哪些類可以被訪問,也就是說可以用來修飾類,一個檔案中最多隻能有一個使用public修飾的類。如果希望客戶端程式設計師使用該類,並可以建立物件,那麼就可以將該類修飾為public。並且被修飾為public的類必須要與該檔案的名字完全相同。

5.總結

本章主要學習的是Java中的三種訪問許可權,熟練的掌握public、private和protected三種類型的概念以及應用場景將能更好的提高程式的健壯性和穩定性。