通路權限控制的等級,從最大權限到最小權限依次為:public、protected、包通路權限和private。
6.1 包:庫單元
但編寫一個java源代碼檔案時,此檔案通常被稱為編譯單元。每個編譯單元都必須有一個字尾名.java,而在編譯單元内則可以有一個public類,該類的名稱必須與檔案的名稱相同(包括大小寫,但不包括檔案的字尾名.java)。每個編譯單元隻能有一個public類,否則編譯器就不會接受。如果在該編譯單元有額外的類的話,那麼在包之外的師姐是無法看到這些類的,這是因為它們不是public類,而且它們主要是用來為public類提供支援的。
當編譯一個.java檔案時,在.java檔案的每個類都會有一個輸出檔案,而該輸出檔案的名稱與.java檔案中的每個類的名稱相同,隻是多了一個字尾.class。是以,在編譯少量.java檔案之後,會得到大量的.class檔案。java可運作程式是一組打包并壓縮為一個JAVA文檔檔案(JAR,使用JAVA的jar文檔生成器)的.class檔案。java解釋器負責這些檔案的查找、裝載和解釋。
身為一名類庫設計人員,很有必要牢記:package和import關鍵字允許你做的,是将單一的全名名字空間分隔開,使得無論多少人使用internet和java開始編寫類,都不會出現名稱沖突問題。
安裝慣例,package名稱的第一部分是類的建立者的反順序的internet域名。
第二部分是把package名稱分解為你機器上的一個目錄。
java解釋器的運作過程如下:首先,查找環境變量CLASSPATH。CLASSPATH包含一個或多個目錄,用作查找.class檔案的根目錄。從根目錄開始,解釋器擷取包的名稱并将每個句點替換成反斜杠,以從CLASSPATH根中産生一個路徑名稱(于是,package foo.bar.baz就變成foo\bar\baz或者foo/bar/baz,這一切取決于作業系統)。得到的路徑會與CLASSPATH中的各個不同的項相連接配接,解釋器就在這些目錄中查找與你所要建立的類名稱相關的.class檔案。
java沒有c的條件編譯功能,該功能可以使你不必要更改任何程式的代碼,就能夠切換開關并産生不同的行為。