包的聲明和引入:在Java語言系統中,Java編譯器為每一個類生成一個字節碼文件(.class),為了對類文件進行分層和按用途分類管理,同時也為了解決相同類名的文件沖突的問題,Java提供了包機制來管理類名空間。一般情況下,應將相關的類組織到同一個包中。使用包提供了包的封裝和存取權限。
一個包可以包含若干個類,還可以包含若干個包。
包被放在當前目錄或指定目錄下,該指定目錄要在操作系統環境變量表中的classpath參數的值包含著,以便系統能夠搜索到該指定目錄下的包和包中的類文件。
包名本身就是一個目錄,包和子包之間用.
隔開,以表明包的層次目錄結構。(包名就是文件夾名,類名就是文件名)。
在編寫Java源程序時,對一個Java程序文件可以使用聲明報道語句指定其中每個類的字節碼文件所屬的包。
聲明包語句的關鍵字為package
,后面跟著包名或者包的層次目錄名,該語句若存在則必須是Java程序文件中的第一條語句。
改程序文件被編譯后就把每個類的字節碼文件保存到指定的包中。若一個Java程序文件不帶有聲明包的語句,則其中每個類的字節碼文件被保存到當前目錄中,即被編譯的Java程序文件所在的的目錄中。
像程序中引入包的關鍵字為import
,后面跟著包名和類名,包名和類名之間也必須用句點分開。
若需要引入包中的所有類,則需要用*
代替類名,例如import java.io.*;
,語句向所在的Java程序文件中引入了java.io
包中的所有類。
引入包語句import
必須出現在聲明包語句package
之后和所有類定義模塊之前的位置。
當編譯帶有聲明包語句的程序文件時,在編譯命令中,必須使用-d
參數項,后面跟著包所在的目錄路徑,若把包保存在當前目錄時,則使用句點代替。
例如程序a.java開頭為package myJava;
,編譯指令為javac -d . a.java
,編譯命令執行后將在當前目錄下建立一個包名為myjava
的目錄,此目錄中包含文件a.class
在一個Java程序文件中,系統將自動引入java.lang
包中的所有類 (自動加上import java.lang.*;
),在java.lang
包中含有常用的系統類,如字符串類String
,基本數據類型的包裝類,數學函數類Math
,系統基類Object
,系統狀態類System
.Java系統類庫中包含有各種用途的包,如進行文件操作的io包、進行網絡應用的net包、進行數據庫操作的sql包、進行可視化圖形用戶窗口界面操作的awt包、進行集合數據操作的util包等.
- java.lang包:java.lang包是Java語言的核心類庫,包含了運行Java程序必不可少的系統類,如基本數據類型、基本數學函數、字符串處理、線程、異常處理類等。每個Java程序運行時,系統都會自動地引入java.lang包,所以這個包的加載是缺省的。
- java.io包: java.io包是Java語言的標準輸入/輸出類庫,包含了實現Java程序與操作系統、用戶界面以及其他Java程序做數據交換所使用的類,如基本輸入/輸出流、文件輸入/輸出流、過濾輸入/輸出流、管道輸入/輸出流、隨機輸入/輸出流等。凡是需要完成與操作系統有關的較底層的輸入輸出操作的Java程序,都要用到java.io包。
- java.util包:java.util包包括了Java語言中的一些低級的實用工具,如處理時間的Date類,處理變長數組的Vector類,實現棧和雜湊表的Stack類和HashTable類等,使用它們開發者可以更方便快捷地編程。
- java.awt包:java.awt包是Java語言用來構建圖形用戶界面(GUI)的類庫,它包括了許多界面元素和資源,主要在三個方面提供界面設計支持:低級繪圖操作,如Graphics類等;圖形界面組件和布局管理,如Checkbox類、Container類、LayoutManager接口等;以及界面用戶交互控制和事件響應,如Event類。
- java.applet包:java.applet包是用來實現運行于Internet瀏覽器中的Java Applet的工具類庫,它僅包含少量幾個接口和一個非常有用的類:java . applet . Applet。
- java.net包: java.net包是Java語言用來實現網絡功能的類庫。由于Java語言還在不停地發展和擴充,它的功能,尤其是網絡功能,也在不斷地擴充。目前已經實現的Java網絡功能主要有:底層的網絡通信,如實現套接字通信的Socket類、ServerSocket類;編寫用戶自己的Telnet、FTP、郵件服務等實現網上通信的類;用于訪問Internet上資源和進行CGI網關調用的類,如URL等。
- java.awt.event包: java.awt.event包是對JDK 1.0版本中原有的Event類的一個擴充,它使得程序可以用不同的方式來處理不同類型的事件,并使每個圖形界面的元素本身可以擁有處理它上面事件的能力。
- java.sql包: java.sql包是實現JDBC(Java database connection)的類庫。利用這個包可以使Java程序具有訪問不同種類的數據庫的功能,如Oracle,Sybase,DB2,SQLServer等。