日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

创建和应用Java包文件的两种方式(转)

發(fā)布時(shí)間:2023/12/2 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 创建和应用Java包文件的两种方式(转) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

創(chuàng)建和應(yīng)用Java包文件的兩種方式(轉(zhuǎn))

《Java編程藝術(shù)》章節(jié)選登。作者:高永強(qiáng)?清華大學(xué)出版社?(即將出版)
12.1??包——package
???。。。

12.1.1??包命名規(guī)范
??????為了確保包文件名稱的唯一性,Java對(duì)應(yīng)用軟件開(kāi)發(fā)者,尤其對(duì)軟件開(kāi)發(fā)公司,在包的命名方面提出如下規(guī)范:

包名全部用英文小寫(xiě)字母。?必須符合Java合法命名語(yǔ)法格式。?使用倒寫(xiě)的互聯(lián)網(wǎng)地址作為包名。如果仍然不能表示包文件名的唯一性時(shí),加入地區(qū)性標(biāo)識(shí)符。?避免使用Java API包名。例如java.lang、javax.swing等。

例1? .?應(yīng)用Java包命名規(guī)范的例子。
??互聯(lián)網(wǎng)地址??????????????????????????????????包名
FreeSkyTech.com???????????????????????? com.freeskytech
Ohlone.edu/faculty/CS?????????????????? cs.faculty.edu.ohlone.usa
例2.作為學(xué)習(xí)和培訓(xùn)為目的的編程實(shí)踐,建議使用具有清楚含義的文件目錄作為包名。如本書(shū)例子中利用:
C:\javabook\classes\ch12\
作為儲(chǔ)存包文件的目錄,而包名為:ch12
12.1.2??創(chuàng)建包文件
??包文件的創(chuàng)建和應(yīng)用通常有如下兩種方式:

利用CLASSPATH。?利用Java JAR文件。

下面首先討論利用CLASSPATH創(chuàng)建和使用包文件。以窗口操作系統(tǒng)為例,創(chuàng)建包文件可按如下步驟:
1.?????????創(chuàng)建用來(lái)儲(chǔ)存生成的字節(jié)碼文件的目錄。Java規(guī)定,從總目錄開(kāi)始,至少有3個(gè)子目錄。例如,如下儲(chǔ)存包文件的目錄:
C:\javabook\classes\ch12\?????????其中ch12為包名。
2.?????????在要?jiǎng)?chuàng)建成包文件的程序開(kāi)始,按照以上目錄,加入package語(yǔ)句。即:
package ch12;
public class PackageTest {
??? public void print() {
??????? System.out.println(\"Here is message from Package Test ...\");
??? }
}
3.?????????設(shè)立CLASSPATH。其目的是告訴Java編譯器以及JVM在哪里可以找到和裝載源代碼和字節(jié)代碼文件。根據(jù)Java規(guī)定,CLASSPATH必須轉(zhuǎn)向比包文件儲(chǔ)存目錄高一級(jí)的目錄。如在這個(gè)例子中,CLASSPATH應(yīng)當(dāng)是:C:\javabook\classes;
4.?????????創(chuàng)建儲(chǔ)存源代碼文件的目錄。將源文件和生成的字節(jié)碼文件分別儲(chǔ)存在不同的目錄中,以易于管理。如下創(chuàng)建儲(chǔ)存源代碼文件的目錄:
C:\javabook\src\ch12\
5.?????????將PackageTest.java或者所有要?jiǎng)?chuàng)建包文件的源代碼復(fù)制到這個(gè)目錄中。
6.?????????編譯。在操作系統(tǒng)的總目錄C:\中,輸入如下編譯指令:
C:\javac –d javabook\classes javabook\src\ch12\PackageTest.java
???????指令中,–d告訴編譯器將生成的字節(jié)碼文件儲(chǔ)存到其后指定的目錄中。最后參數(shù)指出儲(chǔ)存源代碼文件的目錄。如果這個(gè)目錄中有多個(gè)創(chuàng)建的包文件,可以將文件名修改為*.java。執(zhí)行這個(gè)編譯指令后,編譯器將把所有生成的.class文件儲(chǔ)存到目錄C:\javabook\classes\ch 12中。注意這個(gè)編譯指令與以上各步驟的關(guān)系。如果指令不正確,將產(chǎn)生編譯錯(cuò)誤,或生成的字節(jié)文件不會(huì)被JVM裝載。
也可使用兩個(gè)子目錄作為包名,如:
package ch12.share;
public class PackageTest2 {
??? ...
}
儲(chǔ)存包文件的文件目錄為:C:\javabook\classes\ch12\share\
?
而CLASSPATH依然為:??C:\javabook\classes\
?
注意??在窗口操作系統(tǒng)中,表示子目錄的前斜劃線\\或后斜劃線/均為合法。

12.1.3??引入包文件
??????如同我們引入API包類一樣,創(chuàng)建了的包文件,可以用import引入到程序中應(yīng)用。例如上面的例子:
?
import ch12.PackageTest1;
import ch12.PackageTest2;
?也可以利用:?
import ch12.*;?????

引入包c(diǎn)h12中所有的包類。注意,PackageTestApp.java可以儲(chǔ)存在任何目錄中編譯和運(yùn)行。
?
12.1.4? JAR文件
???????創(chuàng)建和使用包文件的另外一種常用方式是利用Java的JAR文件。JDK的目錄\jre\lib\ext允許以Java壓縮文件,JAR(Java Archive)文件形式,儲(chǔ)存自定義包類。任何編程人員都可以在程序中引入這些壓縮的包文件,并加以應(yīng)用。這種方式無(wú)需設(shè)立CLASSPATH。JAR文件可以包括多個(gè)包類,用來(lái)提高引入、編譯以及裝載效率。在編譯時(shí),Java編譯器將首先自動(dòng)對(duì)引入的包文件解壓。
JDK中的指令jar可以用來(lái)創(chuàng)建JAR文件。假設(shè)有如下兩個(gè)要?jiǎng)?chuàng)建為JAR文件的演示程序:
?
package ch12;
public class PackageTest1 {
public void print() {
??? System.out.println(\"Here is Package Test 1 message...\");
??? }
}
?
以及:
?
package ch12;
public class PackageTest2 {
public void print() {
??? System.out.println(\"Here is Package Test 2 message...\");
??? }

可按照如下步驟創(chuàng)建和引入JAR文件:
1.?????????創(chuàng)建儲(chǔ)存包文件的目錄。與利用CLASSPATH創(chuàng)建包文件目錄的要求相同,從總目錄開(kāi)始,必須至少有3個(gè)子目錄。如:C:\javabook\classes\ch12\
2.?????????將包文件(源代碼文件)復(fù)制到以上目錄中。
3.?????????分別編譯每個(gè)程序。
4.?????????創(chuàng)建JAR文件。輸入如下jar指令:
C:\javabook\classes\jar cvf ch12.jar ch12\*?
這個(gè)指令在當(dāng)前目錄中產(chǎn)生一個(gè)包括子目錄所有文件的名為ch12.jar的壓縮文件。三個(gè)jar指令的選項(xiàng)cvf的含義為:c——?jiǎng)?chuàng)建JAR文件;v——顯示創(chuàng)建過(guò)程信息;f——跟隨的是jar文件名。“*”表示將包括源代碼在內(nèi)的程序都?jí)嚎s在JAR文件中。也可以利用如下指令只包括字節(jié)文件:
C:\javabook\classess\jar cvf ch12.jar ch12\*.class
注意,一般JAR文件名使用小寫(xiě)字母。可以是任何Java合法標(biāo)識(shí)符。
5.?????????將創(chuàng)建的jar文件拷貝到JDK的子目錄\jre\lib\ext\中。
6.?????????實(shí)現(xiàn)引入。任何程序都可以引入這個(gè)JAR文件中的包類。例如:
import ch12.*;??????????????????????????????????????? //引入所有包類
public class PackageJarTestApp {
??????? public static void main(String[] args) {
??????? PackageTest1 myPackage = new PackageTest1();??? //利用引入的包類創(chuàng)建對(duì)象
??????? myPackage.print();????????????????????????????? //調(diào)用其方法
??????? PackageTest2 yourPackage = new PackageTest2();
??????? yourPackage.print();
??? }
}
如同引入API包類一樣,如果只需要import單獨(dú)的包類,在import中寫(xiě)明具體類名。如:
import ch12.OtherClass;
12.1.5? IDE中的包
???????幾乎所有流行的Java IDE都采用包和項(xiàng)目機(jī)制來(lái)管理應(yīng)用程序的編寫(xiě)和開(kāi)發(fā)。從這一章開(kāi)始,所有舉例程序都利用Eclipse的包來(lái)儲(chǔ)存和管理。
?????? IDE中的包機(jī)制為創(chuàng)建和引入包類提供了方便。編程人員不必按照詳細(xì)操作步驟創(chuàng)建包文件,也不必為引入包類出錯(cuò)而擔(dān)憂。編程人員只需考慮如何在IDE中設(shè)置包。
???????下面以Eclipse為例,討論如何在IDE中設(shè)置包。其他IDE的設(shè)置,可參考相關(guān)IDE文件。
???????假設(shè)將上面小節(jié)討論過(guò)的PackageTest1.java和PackageTest2.java作為項(xiàng)目Ch12的包文件。因?yàn)镋clipse自動(dòng)生成包文件,首先需要?jiǎng)h除兩個(gè)程序中的package指令。刪除后的PackageTest1源代碼如下所示:
public class PackageTest1 {
??????? public void print() {
??????????? System.out.println(\"Here is Package Test 1 message...\");
??????? }
}
???PackageTest2.java與此相同。
??? Eclipse提供了許多方法設(shè)置包。如下列舉的是其典型步驟:
1.?????????創(chuàng)建項(xiàng)目Project。如File→New→Project→Next,輸入項(xiàng)目名,如Ch12。按下Finish。
2.?????????在項(xiàng)目名下,如Ch12,選擇File→New→Package,在Name:窗口條中輸入包名,如ch12,按下Finish。
3.?????????在項(xiàng)目Ch12中,創(chuàng)建一個(gè)用來(lái)儲(chǔ)存包類的子目錄,例如classes。
4.?????????將以上兩個(gè)程序拷貝至子目錄classes中。完成包的設(shè)置。注意Eclipse自動(dòng)在程序開(kāi)始加入package classes;
???????如下為引入這兩個(gè)包類的驅(qū)動(dòng)程序:
package ch12;
import classes.*; //引入包c(diǎn)lasses的所有類,即PackageTest1以及PackageTest2
public class PackageTestApp2 {
????? public static void main(String[] args) {
????? PackageTest1 myPackage = new PackageTest1();
????? myPackage.print();
????? PackageTest2 yourPackage = new PackageTest2();
????? yourPackage.print();
??? }
}
如果把要引入包類的程序,如上例的驅(qū)動(dòng)程序和包類都儲(chǔ)存在同一個(gè)目錄,或包中,如ch12,以上步驟可省略。import?語(yǔ)句則無(wú)必要。

?

?

?

自己總結(jié)的一些經(jīng)驗(yàn)。。

1、java規(guī)定從總目錄開(kāi)始要有三層目錄,如C:\javapack\classes 在此下就可以定義自己的包,還有一點(diǎn),如果包下面還有子包,那么在其他類導(dǎo)入時(shí),子包也要寫(xiě)。。。忘了這個(gè)還以為哪里錯(cuò)了,卡了好久。

2.上面文章總結(jié)了兩種方法,感覺(jué)第二種比較容易操作,第一種其實(shí)也還好。。就是得注意環(huán)境變量的設(shè)置。注意一點(diǎn)就是,java里classpath規(guī)定必須轉(zhuǎn)向比包文件目錄高一級(jí)的目錄,如上面的話就得 C:\javapack\classes

3.在eclipse,發(fā)現(xiàn)在同一個(gè)工程里創(chuàng)建的包可以被其他類使用,前提類必須public。

其實(shí)就是要驗(yàn)證protected能否在同一個(gè)包內(nèi)使用,無(wú)意撤出那么多。。。后面我們課程有學(xué)就是了。。

#java學(xué)習(xí)

總結(jié)

以上是生活随笔為你收集整理的创建和应用Java包文件的两种方式(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。