Java引入套件(package)機制,提供了類別的多層命名空間,用於解決類別的命名衝突、類別檔案管理等問題。
Java允許將一組功能相關的類別放在同一個package下,從而組成邏輯上的類別庫單元。如果希望把一個類別放在指定的套件結構下,我應該在Java原始程式的第一個非註解行放置如下格式的程式碼:
package packagename;
一旦在Java原始檔中使用了這個package語句,就表示該來源檔案裡定義的所有類別都屬於這個套件。位於包中的每個類的完整類名都應該是包名和類名的組合,如果其他人需要使用該包下的類,也應該使用包名加類名的組合。
javac -d . Hello.java 与 javac Hello.java 的区别? package lee;public class Hello{ public static void main(String[] args) { System.out.println("Hello World!"); } }
-d選項本來用來設定編譯產生的class檔案的儲存位置,這裡指定將產生的class檔案放在目前路徑下。使用該指令編譯後,目前路徑下產生一個名為lee的資料夾,該資料夾下則有一個Hello.class檔。
如果直接使用javac Hello.java指令編譯,將會在目前路徑下產生一個Hello.class文件,而不會產生lee資料夾。
同一個套件中的類別必須位於同一個資料夾嗎?
可以不在同一個資料夾。例如lee.Person和lee.PersonTest兩個類別可一個在C盤一個在D盤,只要讓CLASSPATH環境變數包含這兩個路徑即可。
套件名稱如何起?
包名一般都是小寫字母,由一個或多個有意義的單字連綴而成。為了在開發中避免包名和類別名稱同時重複的情況,Oracle建議使用公司Internet域名倒寫來作為包名,例如Internet域名是crazyit.org,則該公司的所有類別都放在org.crazyit包及其子包下。
網域倒寫.專案名稱.模組名稱.元件名稱
同一個套件下的類別互相存取時可以不加包裝前綴嗎?
可以。
父包和子包互相存取時可以不加包前綴嗎?
不可以,必須加包前綴。
import關鍵字
如如上面看到的,如果需要使用不同套件中的其他類別時,總是需要使用該類別的全名,這是一件繁瑣的事情。為了簡化編程,Java引入了import關鍵字,import關鍵字可以向某個java檔案只能給導入指定套件層次下的某個類別或全部類,import語句應該出現在package語句之後、類別定義之前。一個Java原始檔只能包含一個package語句,但可以包含多個import語句,多個import語句用來導入多個套件層次下的類別。
导入单个类: import package.subpackage...ClassName; 导入全部类: import package.subpackage...*;
上面的(*)只能代表類,不能代表套件。
Java的常用套件
Java的核心類別都放在java這個套件及其子套件下,Java擴充的許多類別都放在javax套件及其子包之下。這些實用類別也就是前面所說的API(應用程式介面),Oracle依照這些類別的功能分別放在不同的套件下。下面幾個包是Java中的常用包。
java.lang:這個套件下包含了Java語言的核心類,如Sting、Math、System、和Tread類別等,使用這個套件下的類別不需要使用import語句導入,系統會自動導入這個包下的所有類別。
java.util:這個套件下包含了Java的大量工具類別/介面和集合框架類別/接口,例如Arrays和List、Set等。
java.net:這個套件下包含了一些Java網路程式設計相關的類別/介面。
java.io:這個套件下包含了一些Java輸入/輸出相關的類別/介面。
java.text:這個套件下包含了一些Java格式化相關的類別。
java.sql:這個套件下包含了一些Java進行JDBC資料庫程式設計相關的類別/介面。
java.awt:這個套件下包含了抽象視窗工具集(Abstract Window Toolkits)的相關類別/接口,這些類別主要用於建立圖形使用者介面(GUI)程式。
java.swing:這個套件下包含了Swing圖形使用者介面程式設計的相關類別/接口,這些類別可用於建構平台無關的CUI程式。
【相關推薦】
2. java軟體工程師學php -15 php中的namespace 與java中的package
3. Sublime text 2/3 中Package Control 的安裝與使用方法
4. 圖解idea不能新建JavaClass和Package解決方法
以上是深入了解Java package實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!