更新時間:2019-09-16 15:25:08 來源:動力節(jié)點 瀏覽3722次
今天動力節(jié)點java培訓(xùn)機構(gòu)小編為大家介紹“java包的定義和使用方法”,希望通過此文能夠讓大家熟知java包的定義和使用方法,下面就隨小編一起看看java包的定義和使用方法。
java包的定義
java包指得是一個程序的目錄,包名字只能為小寫。
在最早的時候,如果要開發(fā)一個程序,只需要定義一個*.java文件,然后在這個文件里編寫所需要的類文件,而在編譯之后程序?qū)⒅苯颖4嬖诟夸浵?,而利用包可以實現(xiàn)同一個程序的拆分,即:根據(jù)我們的要求將代碼保存在不同的目錄下。
如果要定義我們的包,可以使用package關(guān)鍵字完成。
范例:定義包
package cn.mldn.demo; // 這就是一個包
public class Helo {
public static void main(String args[]) {
System.out.println("Hello world !");
}
}
如果在定義包的時候出現(xiàn)了“.”,那么就表示子目錄。如果說類有包的定義了,那么就必須讓其保存在特定的目錄下,不過不要自己去手工創(chuàng)建這些目錄,我們應(yīng)該使用命令自動生成:
?。?)打包編譯:javac -d . Hello.java。
“-d”:生成目錄,根據(jù)package的定義生成。
“.”:設(shè)置保存的路徑,如果為“.”表示在當前所在路徑下生成。
?。?)在解釋程序的時候,不要進入到包里面解釋程序,應(yīng)該在包處面輸入類的完整名字(包.類)。
輸入:java cn.mldn.demo.Hello
以后所有的類都一定要定義在包之中,那么完整的類名稱就是“包.類”。
java包的導(dǎo)入
使用包可以將一個完整的程序拆分為不同的文件進行分別保存,這樣就會造成一個問題,不同包之間有可能會進行互相訪問,那么此時就需要使用導(dǎo)包的操作,使用import語句完成即可。
范例:包的導(dǎo)入,定義一個cn.mldn.util.Message的類
package cn.mldn.util;
public class Message {
public void print() {
Systen.out.println("Hello World !");
}
}
定義一個cn.mldn.test.TestMessage的類
package cn.mldn.test;
import cn.mldn.util.Message; // 導(dǎo)入要使用的類
public class TestMessage{
public static void main(String args[]) {
Message msg = new Message();
msg.print();
}
}
對于程序的編譯應(yīng)該采用先編譯Message,再編譯TestMessage。
編譯:
javac -d . Message.java
javac -d . TestMessage.java
Java編譯器考慮到了作為大型程序開發(fā)的時候,有可能會存在有多個.java文件互相引用,為了解決這個問題,提供了通配符“”:javac -d . *.java。
編譯并執(zhí)行:
javac -d . *.java
java cn.mldn.test.TestMessage
輸出結(jié)果:
Hello World !
但是發(fā)現(xiàn)在導(dǎo)入包的時候也出現(xiàn)了一個問題,如果使用一個包中類的時候要編寫“import 包.類”,那么如果要使用一個包中多個類的時候,那么肯定要重復(fù)去編寫“import 包.類”,這樣很麻煩,所以此時可以使用“import 包.”的方法來代替一個包中多個類的導(dǎo)入操作。
使用“import 包.”指的并不是全部導(dǎo)入,而是只導(dǎo)入程序里面所需要的類,所以不需要去考慮性能問題。
但是既然出現(xiàn)了導(dǎo)包操作,那么就必須有一個重要的問題注意,有可能同一個代碼里面會同時導(dǎo)入不同的包,并且不同的包里有可能會存在同名類。
假如現(xiàn)在有兩個類:cn.mldn.util.Message和org.lxh.Message。由于某種需要,要同時導(dǎo)入以上兩個包。
范例:TestMessage導(dǎo)入兩個包
package cn.mldn.test;
// 導(dǎo)入兩個同名稱的類
import cn.mldn.util.Message;
import org.lxh.Message;
public class TestMessage{
public static void main(String args[]) {
// 這種情況只能加上類的包名,使用完整名稱
cn.mldn.util.Message msg = new cn.mldn.util.Message();
msg.print();
}
}
系統(tǒng)常見包
Java本身提供了大量的程序開發(fā)包(除了Java自己提供的,還有許多第三方提供了開發(fā)包)。在Java的開發(fā)有如下一些常見的系統(tǒng)包:
java.lang:包含了String、Object、Integer等類,從JDK1.1開始此包自動導(dǎo)入。
java.lang.reflect:反射開發(fā)包。
java.util:Java的工具包,提供了大量的工具類,比如鏈表。
java.util.regex:正則工具包。
java.text:國際化處理程序包。
java.io:進行輸入、輸出處理以及文件操作。
java.net:網(wǎng)絡(luò)編程開發(fā)包。
java.sql:數(shù)據(jù)庫程序開發(fā)包。
java.awt、javax.swing:圖形界面的開發(fā)包,javax指拓展,主要功能是進行單機版程序界面編寫。
(1)JDK1.0的時候主要推出的是awt開發(fā)包,但是這個開發(fā)包使用了大量的windows圖形函數(shù)。
(2)JDK1.2的時候隆重推出了javax.swing開發(fā)包,是一個輕量級(Java自己不使用windows),Java從此更名為java2。
java.applet:Applet程序開發(fā)包(已經(jīng)不用了)。
Applet指的是在網(wǎng)頁上嵌套的程序,可以使用Applet做一個動態(tài)的效果。
Applet是最早的Java出現(xiàn)的形式,功能類似于今天的JavaScript。
package cn.mldn.demo;
import java.applet.*;
import java.awt.*;
public class MyApplet extends Applet {
public void paint(Graphics g) {
g.drawLine(10, 10, 100, 100);
}
}
編譯之后并不能表示其可以正常的使用,還需要編寫html代碼進行引用。
解釋:關(guān)于Applet與Application的區(qū)別
Applet指的是在網(wǎng)頁上嵌套的程序,是采用繪圖的方式完成的顯示,而Application是在主方法中運行,通過命令行執(zhí)行(如果要再實現(xiàn)同樣的功能,都使用Canvas繪圖——HTML5)。
jar命令
在任何一個項目里面,一定會存在有大量的.class文件,那么如果將這些.class文件直接交給用戶使用,那么會造成文件越多,并且會導(dǎo)致程序非常沒有結(jié)構(gòu),所以在交付用戶使用之前,會使用jar命令針對于*.class進行壓縮,并且壓縮的都是以包為主的。
jar命令
范例:使用jar,將原來生成的class類刪除
javac -d . Message.java
jar -cvf my.jar cn
這樣就形成了一個jar文件。生成的my.jar文件并不能夠直接使用,必須配置CLASSPATH才可以加載。
SET CLASSPATH=. ;位置\my.jar
javac -d . TestMessage.java
java cn.mldn.test.TestMessage
輸出結(jié)果:
Hello World !
在以后的開發(fā)之中需要大量的使用第三方的jar文件,那么所有的jar文件必須配置CLASSPATH,否則不能夠使用。最簡單的配置方式可以在環(huán)境屬性中完成。
總結(jié)
1、以后開發(fā)的程序一定要有包的存在。
2、如果包沖突的時候要寫上完整的類名稱。
3、以后使用第三方j(luò)ar文件必須配置CLASSPATH。
以上就是動力節(jié)點java培訓(xùn)機構(gòu)小編介紹的“java包的定義和使用方法”的內(nèi)容,希望對大家有幫助,更多java最新資訊請繼續(xù)關(guān)注動力節(jié)點java培訓(xùn)機構(gòu)官網(wǎng),每天會有精彩內(nèi)容分享與你。
相關(guān)免費視頻教程推薦
零基礎(chǔ)java教程下載——包的定義:http://m.dabaquan.cn/xiazai/2597.html
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743