- 相關(guān)推薦
如何創(chuàng)建java包名
大家或許已注意到這樣一個事實:由于一個包永遠不會真的“封裝”到單獨一個文件里面,它可由多個.class文件構(gòu)成,所以局面可能稍微有些混亂。為避免這個問題,最合理的一種做法就是將某個特定包使用的所有.class文件都置入單個目錄里。也就是說,我們要利用操作系統(tǒng)的分級文件結(jié)構(gòu)避免出現(xiàn)混亂局面。這正是Java所采取的方法。以下是小編為大家搜索整理的如何創(chuàng)建java包名,希望能給大家?guī)韼椭?更多精彩內(nèi)容請及時關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
它同時也解決了另兩個問題:創(chuàng)建獨一無二的包名以及找出那些可能深藏于目錄結(jié)構(gòu)某處的類。正如我們在第2章講述的那樣,為達到這個目的,需要將.class文件的位置路徑編碼到package的名字里。但根據(jù)約定,編譯器強迫package名的第一部分是類創(chuàng)建者的因特網(wǎng)域名。由于因特網(wǎng)域名肯定是獨一無二的(由InterNIC保證——注釋②,它控制著域名的分配),所以假如按這一約定行事,package的名稱就肯定不會重復(fù),所以永遠不會遇到名稱沖突的問題。換句話說,除非將自己的域名轉(zhuǎn)讓給其他人,而且對方也按照相同的路徑名編寫Java代碼,否則名字的沖突是永遠不會出現(xiàn)的。當(dāng)然,如果你沒有自己的域名,那么必須創(chuàng)造一個非常生僻的包名(例如自己的英文姓名),以便盡最大可能創(chuàng)建一個獨一無二的包名。如決定發(fā)行自己的Java代碼,那么強烈推薦去申請自己的域名,它所需的費用是非常低廉的。
②:ftp://ftp.internic.net
這個技巧的另一部分是將package名解析成自己機器上的一個目錄。這樣一來,Java程序運行并需要裝載.class文件的時候(這是動態(tài)進行的,在程序需要創(chuàng)建屬于那個類的一個對象,或者首次訪問那個類的一個static成員時),它就可以找到.class文件駐留的那個目錄。
Java解釋器的工作程序如下:首先,它找到環(huán)境變量CLASSPATH(將Java或者具有Java解釋能力的工具——如瀏覽器——安裝到機器中時,通過操作系統(tǒng)進行設(shè)定)。CLASSPATH包含了一個或多個目錄,它們作為一種特殊的“根”使用,從這里展開對.class文件的搜索。從那個根開始,解釋器會尋找包名,并將每個點號(句點)替換成一個斜杠,從而生成從CLASSPATH根開始的一個路徑名(所以package foo.bar.baz會變成foo\bar\baz或者foo/bar/baz;具體是正斜杠還是反斜杠由操作系統(tǒng)決定)。隨后將它們連接到一起,成為CLASSPATH內(nèi)的各個條目(入口)。以后搜索.class文件時,就可從這些地方開始查找與準(zhǔn)備創(chuàng)建的類名對應(yīng)的名字。此外,它也會搜索一些標(biāo)準(zhǔn)目錄——這些目錄與Java解釋器駐留的地方有關(guān)。
為進一步理解這個問題,下面以我自己的域名為例,它是bruceeckel.com。將其反轉(zhuǎn)過來后,com.bruceeckel就為我的類創(chuàng)建了獨一無二的全局名稱(com,edu,org,net等擴展名以前在Java包中都是大寫的,但自Java 1.2以來,這種情況已發(fā)生了變化。現(xiàn)在整個包名都是小寫的)。由于決定創(chuàng)建一個名為util的庫,我可以進一步地分割它,所以最后得到的包名如下:
package com.bruceeckel.util;
現(xiàn)在,可將這個包名作為下述兩個文件的“命名空間”使用:
//: Vector.java
// Creating a package
package com.bruceeckel.util;
public class Vector {
public Vector() {
System.out.println(
"com.bruceeckel.util.Vector");
}
} ///:~
創(chuàng)建自己的包時,要求package語句必須是文件中的第一個“非注釋”代碼。第二個文件表面看起來是類似的:
//: List.java
// Creating a package
package com.bruceeckel.util;
public class List {
public List() {
System.out.println(
"com.bruceeckel.util.List");
【如何創(chuàng)建java包名】相關(guān)文章:
如何創(chuàng)建java包06-11
如何創(chuàng)建并運行Java線03-19
java Runnable接口如何創(chuàng)建線程05-18
Java如何創(chuàng)建不可變類08-01
如何成為一名合格的Java初級程序員05-03
簡單java程序創(chuàng)建方法07-13
Java中創(chuàng)建對象的方式08-02