包的本質(zhì)實(shí)際上就屬于一個(gè)文件夾剂府。在任何的一個(gè)項(xiàng)目里面你很難避免重復(fù)的類名稱出現(xiàn)。而且如果所有的*.class文件都存放在一個(gè)目錄之中赂乐,那么就有可能出現(xiàn)覆蓋的情況赡突。而這樣就會(huì)造成項(xiàng)目的整體的開發(fā)困難,所以為了解決這樣的沖突袁辈,所有的Java程序都應(yīng)該保存在各自的目錄里面菜谣,而這個(gè)目錄就稱為包。
一.包的定義
如果要想進(jìn)行包的定義晚缩,只需要在*.java源文件的第一行編寫:“ ?package 包名稱; ?”的語句即可尾膊。
一旦程序出現(xiàn)有包名稱了,那么*.class文件在進(jìn)行存放的時(shí)候就必須保存在相應(yīng)的目錄之中荞彼,不過這種手工創(chuàng)建目錄的形式非常麻煩冈敛,所以在JDK進(jìn)行Java程序編譯的時(shí)候可以追加一些配置參數(shù):
javac -d . 類.java
|-“-d”表示生成目錄,根據(jù)package的定義生成卿泽;
|-“.”表示在當(dāng)前所在的目錄中生成目錄莺债;
在以后進(jìn)行項(xiàng)目開發(fā)的過程之中,所有的*.java文件都一定要使用package定義包签夭。
二.包的導(dǎo)入
開發(fā)之中一旦使用了包的定義之后齐邦,實(shí)際上就相當(dāng)于把一個(gè)大的項(xiàng)目分別按照一定的要求保存在了不同的包里面(文件夾里面),但是這些程序類彼此之間一定會(huì)發(fā)生互相調(diào)用的情況第租,所以這種時(shí)候就需要采用導(dǎo)入包的處理方式措拇。
注意:類使用class和public class的區(qū)別?
?public class:文件名稱必須與類名稱保持一致慎宾,如果希望一個(gè)類被其他包所訪問丐吓,則必須定義為public class;
?class:文件名稱可以與類名稱不一致趟据,在一個(gè)*.class文件中可以定義多個(gè)class券犁,但是這個(gè)類不允許被其他包所訪問。
最常用的打包編譯:javac -d . *.java
另外需要注意一點(diǎn)汹碱,在上面的程序之中導(dǎo)入的時(shí)候采用的是import 包.類“”粘衬,這樣只會(huì)導(dǎo)入一個(gè)類,如果說現(xiàn)在要想導(dǎo)入一個(gè)包中的多個(gè)類咳促,建議可以直接采用通配符“*”完成稚新。
這種“*”并不意味著要將該包中的全部類都進(jìn)行導(dǎo)入,而是根據(jù)你的需求進(jìn)行導(dǎo)入跪腹。
但是在很多開發(fā)情況中也有可能出現(xiàn)不同包但是相同類的情況褂删。
三.系統(tǒng)常用包(了解)
系統(tǒng)常用開發(fā)包:
●java.lang:系統(tǒng)常用的基礎(chǔ)類,例如:String冲茸、Object屯阀,此包從JDK1.1開始自動(dòng)導(dǎo)入缅帘;
●java.lang.reflect:java反射編程包;
●java.math:數(shù)學(xué)支持包难衰,但是支持有限股毫;
●java.net:進(jìn)行網(wǎng)絡(luò)編程的開發(fā)包;
●java.sql:進(jìn)行數(shù)據(jù)庫開發(fā)的支持包召衔;
●java.util:是java提供的工具程序包;
●java.io:IO編程的開發(fā)包祭陷;
●java.applet包:進(jìn)行Applet程序的開發(fā)包苍凛,Applet程序是從1995年開始的,java最主要的技術(shù)兵志,不過現(xiàn)在幾乎所有的瀏覽器都不支持了醇蝴;
●java.awt(重量級組件包,離不開Windows平臺)想罕、javax.swing(真正用java寫的平臺):UI開發(fā)包悠栓,主要進(jìn)行UI界面的編寫;
|-Java 2(最主要的支持就是javax.swing包)按价;