一、重構時考慮的一個問題:如何把變更的事物與保持不變的事物區分開來。java
爲了解決這一問題,java提供了訪問權限修飾詞:public,protected,包訪問權限(沒有關鍵詞)和private程序員
二、做爲一名類庫設計人員,應儘量將一切方法都定爲private,而僅向客戶端程序員公開你願意讓他們使用的方法。工具
三、如何將構建捆綁到一個內聚的類庫單元?設計
java用關鍵字package加以控制,而訪問權限修飾詞會因類是存在於一個相同的包,仍是存在於一個單獨的包而受到影響。繼承
一、當編寫一個java源代碼文件時,此文件一般被稱爲編譯單元(有時也被稱爲轉譯單元),每一個編譯單元都必須有一個後綴.java,而在編譯單元內則能夠有一個public類,該類的名稱必須與文件的名稱相同。每一個編譯單元只能有一個public類。接口
6.1.1代碼組織文檔
一、當編譯個一.java文件時,在.java文件中的每一個類都會有一個輸出文件,而該輸出文件的名稱與.java文件中每一個類的名稱相同,只是多了一個後綴名.class。權限控制
二、java運行程序是一組能夠打包並壓縮爲一個java文檔文件(jar)的.class文件。java解釋器負責這些文件的查找,裝載和解釋。編譯
三、若是使用package語句,它必須是文件中除註釋之外的第一句程序代碼。java包的命名規則所有使用小寫字母,包括中間的字也是如此。class
6.1.2建立獨一無二的包名
一、將全部的文件收入一個子目錄能夠解決如下問題:
(1)將特定包的全部.class文件都置於一個目錄下。
(2)建立獨一無二的名稱以及查找有可能隱藏於目錄結構中某處的類。
二、java解釋器的運行過程以下:首先,找出環境變量CLASSPATH。CLASSPATH包含一個或多個目錄,用做查找.class文件的根目錄。從根目錄開始,解釋器獲取包的名稱並將每一個句點替換成反斜槓,以從CLASSPATH根中產生一個路徑名稱。解釋器就會在這些目錄中查找與你所要建立的類名稱相關的.class文件。
6.1.3定製工具庫
6.1.4用import改變行爲
6.1.4對使用包的忠告
包的名稱對應目錄路徑
6.2.1包訪問權限
一、默認訪問權限沒有任何關鍵字,但一般是指包訪問權限。
6.2.3private:你沒法訪問
一、除非必須公開底層實現細節(此種境況不多見),不然就應該將全部的域指定位private。
6.2.3protected:繼承訪問權限
一、能夠被繼承本身的類訪問
6.3接口和實現
一、訪問權限的控制常被稱爲是具體實現的隱藏。把數據和方法包裝進類中,以及具體實現的隱藏,常共同被稱做是封裝。
二、訪問權限控制將權限的邊界劃在子數據類型的內部。緣由以下:
(1)要設定客戶端程序員可使用和不可使用的界限。
(2)接口和具體實現進行分離。
6.4類的訪問權限
一、類既不能夠是private。因此對於類的訪問權限,僅有兩個選擇:包訪問權限或public。若是不但願其餘任何人對該類擁有訪問權限,能夠把全部的構造器都指定爲private。