一、包
包語句
通過關鍵字package聲明包語句。
package語句作為Java源文件的第一條語句,為該源文件中聲明的類指定包名。
package語句的一般格式為:
package 包名;
例如:
package sunrise;
package sun.com.cn;
有包名的類的存儲目錄
如果一個類有包名,那么就不能在任意位置存放它,否則虛擬機將無法加載這樣的類。
程序如果使用了包語句,例如:package tom.jiafei;
那么存儲文件的目錄結構中必須包含有如下的結構
…\tom\jiafei
如:
c:\1000\tom\jiafei
並且要將源文件編譯得到的類的字節碼文件保存在目錄c:\1000\tom\jiafei中(源文件可以任意存放)。
運行有包名的主類
如果主類的包名是tom.jiafei,那么主類的字節碼一定存放在…\tom\jiefei目錄中,運行時必須到tom\jiefei的上一層(即tom的父目錄)目錄中去運行主類。
假設tom\jiefei的上一層目錄是1000,那么,必須如下格式來運行:
C:\1000\java tom.jiafei.主類名
二、import語句
引入類庫中的類
使用import語句可以引入包中的類。在編寫源文件的時候,除了自己編寫的類以外,經常需要使用Java提供的許多類,這些類可能在不同的包中。
在學習Java語言時,使用已經存在的類,避免一切從頭做起,這也是面向對象編程的一個重要方面。
為了能夠使用Java提供給我們的類,可以使用import語句引入包中類。
在一個Java源程序中可以有多個import語句,它們必須寫在package語句(假如有package語句的話)和源文件中類的定義之間。
Java為我們提供了大約130多個包,比如:
java.lang 包含所有的基本語言類
javax.swing 包含抽象窗口工具集中的圖形、文本、窗口GUI類
java.io 包含所有的輸入輸出類
java.util 包含實用類
java.sql 包含操作數據庫的類
java.nex 包含所有實現網絡功能的類
java.applet 包含所有實現Java applet的類
引入自定義包中的類
用戶程序可以使用tom.jiafei包中的類
如:import tom.jiafei.*;
使用非類庫中有包名的類,也要使用import語句。
使用無包名的類
之前,我們在源文件中一直沒有使用包語句,因此各個源文件得到的類都沒有包名。
如果一個源文件中的類想使用無名包中的類,只要將這個無包名的類的字節碼和當前類保存在同一目錄中即可。
避免類名混淆
1.區分無包名和有包名的類
如果一個源文件使用了一個無名包中的A類,同時又用import語句引入了某個有包名的同名的類,如tom.jiafei中的A類,就可能引起類名的混淆。
2.區分有包名的類
如果一個源文件引入了兩個包中同名的類,那么在使用該類時,不允許省略包名 。