Java中的一個套件(package)就是一個類別庫單元,套件內包含有一組類,它們在單一的名稱空間之下被組織在了一起。這個名稱空間就是套件名稱。
那Java套件(package)怎麼用呢?
可以使用import關鍵字來匯入一個套件。例如使用import java.util.*就可以導入名稱空間java.util套件裡面的所有類別。所謂導入這個包裡面的所有類,就是在import聲明這個包名以後,在接下來的程式中可以直接使用該包中的類。
例如:
import java.util.* public class SingleImport { public static void main(Strin[] args) { ArrayList list=nwe ArrayList(); } }
這裡ArrayList就是java.util套件中的一個類,但是由於對程式使用了import關鍵字載入了java.util包,所以這裡並沒有見到ArrayList類別的定義和聲明,也沒有見到該類別前面有什麼限定名,就可以直接使用這個類別。
我們之所以要匯入套件名,就是要提供一個管理名稱空間的機制。
我們知道,如果有兩個類別A類別和B類別都含有一個具有相同特徵標記(參數列表)的方法f(),即使在同一段程式碼中同時使用這兩個方法f( ),也不會發生衝突,原因就在於有兩個不同的類別名罩在前面作為限定名,所以兩個方法即便同名也不回發生衝突。但是如果類別名稱相互衝突又該怎麼辦呢?假設你編寫了一個Apple類並安裝到了一台機器上,而該機器上已經有一個其他人寫的Apple類,我們該如何解決呢?
因為你如果想弄清楚一台機器上到底已經安裝了那些類,並不是一件很容易的事情,所以名字之間總是有存在潛在的衝突的可能。在Java中對名稱空間進行完全控制並為每個類別創建唯一的標識符組合就成為了非常重要的事情。如果你要寫同一台機器上共存的其他Java程式友善的類別庫或程式的話,就需要考慮如何防止類別名稱之間的衝突問題。
當編寫一個Java原始程式碼檔案時,此檔案通常被稱為編譯單元。
每個編譯單元都必須有一個後綴名.java,而在編譯單元內有且僅有一個public類,否則編譯器就不會接受。
該public類別的名稱必須與檔案的名稱相同(包括大小寫,但不包含後綴名.java)。如果在該編譯單元之中還有額外的類別的話,那麼在套件之外的世界是無法看見這些類別的,因為它們不是public類,而且它們主要用來為主public類別提供支援。
當編譯一個.java檔案(即一個編譯單元)時,在.java檔案中的每個類別都會有一個輸出文件,而該輸出檔案的名稱與.java檔案中每個類別的名稱相同,只是多了一個後綴名.class。因此在編譯少量.java檔之後,會得到大量的.class檔。
每一個.java檔編譯以後都會有一個public類,以及任意數量的非public類別。因此每個.java檔案都是一個構件,如果希望許許多多的這樣的構件從屬於同一個群組,就可以在每一個.java檔案中使用關鍵字package。而這個群組就是一個類別庫。
以上是java package怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!