更新時間:2019-09-16 15:25:08 來源:動力節點 瀏覽3741次
今天動力節點java培訓機構小編為大家介紹“java包的定義和使用方法”,希望通過此文能夠讓大家熟知java包的定義和使用方法,下面就隨小編一起看看java包的定義和使用方法。
java包的定義
java包指得是一個程序的目錄,包名字只能為小寫。
在最早的時候,如果要開發一個程序,只需要定義一個*.java文件,然后在這個文件里編寫所需要的類文件,而在編譯之后程序將直接保存在根目錄下,而利用包可以實現同一個程序的拆分,即:根據我們的要求將代碼保存在不同的目錄下。
如果要定義我們的包,可以使用package關鍵字完成。
范例:定義包
package cn.mldn.demo; // 這就是一個包
public class Helo {
public static void main(String args[]) {
System.out.println("Hello world !");
}
}
如果在定義包的時候出現了“.”,那么就表示子目錄。如果說類有包的定義了,那么就必須讓其保存在特定的目錄下,不過不要自己去手工創建這些目錄,我們應該使用命令自動生成:
?。?)打包編譯:javac -d . Hello.java。
“-d”:生成目錄,根據package的定義生成。
“.”:設置保存的路徑,如果為“.”表示在當前所在路徑下生成。
(2)在解釋程序的時候,不要進入到包里面解釋程序,應該在包處面輸入類的完整名字(包.類)。
輸入:java cn.mldn.demo.Hello
以后所有的類都一定要定義在包之中,那么完整的類名稱就是“包.類”。
java包的導入
使用包可以將一個完整的程序拆分為不同的文件進行分別保存,這樣就會造成一個問題,不同包之間有可能會進行互相訪問,那么此時就需要使用導包的操作,使用import語句完成即可。
范例:包的導入,定義一個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; // 導入要使用的類
public class TestMessage{
public static void main(String args[]) {
Message msg = new Message();
msg.print();
}
}
對于程序的編譯應該采用先編譯Message,再編譯TestMessage。
編譯:
javac -d . Message.java
javac -d . TestMessage.java
Java編譯器考慮到了作為大型程序開發的時候,有可能會存在有多個.java文件互相引用,為了解決這個問題,提供了通配符“”:javac -d . *.java。
編譯并執行:
javac -d . *.java
java cn.mldn.test.TestMessage
輸出結果:
Hello World !
但是發現在導入包的時候也出現了一個問題,如果使用一個包中類的時候要編寫“import 包.類”,那么如果要使用一個包中多個類的時候,那么肯定要重復去編寫“import 包.類”,這樣很麻煩,所以此時可以使用“import 包.”的方法來代替一個包中多個類的導入操作。
使用“import 包.”指的并不是全部導入,而是只導入程序里面所需要的類,所以不需要去考慮性能問題。
但是既然出現了導包操作,那么就必須有一個重要的問題注意,有可能同一個代碼里面會同時導入不同的包,并且不同的包里有可能會存在同名類。
假如現在有兩個類:cn.mldn.util.Message和org.lxh.Message。由于某種需要,要同時導入以上兩個包。
范例:TestMessage導入兩個包
package cn.mldn.test;
// 導入兩個同名稱的類
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();
}
}
系統常見包
Java本身提供了大量的程序開發包(除了Java自己提供的,還有許多第三方提供了開發包)。在Java的開發有如下一些常見的系統包:
java.lang:包含了String、Object、Integer等類,從JDK1.1開始此包自動導入。
java.lang.reflect:反射開發包。
java.util:Java的工具包,提供了大量的工具類,比如鏈表。
java.util.regex:正則工具包。
java.text:國際化處理程序包。
java.io:進行輸入、輸出處理以及文件操作。
java.net:網絡編程開發包。
java.sql:數據庫程序開發包。
java.awt、javax.swing:圖形界面的開發包,javax指拓展,主要功能是進行單機版程序界面編寫。
(1)JDK1.0的時候主要推出的是awt開發包,但是這個開發包使用了大量的windows圖形函數。
(2)JDK1.2的時候隆重推出了javax.swing開發包,是一個輕量級(Java自己不使用windows),Java從此更名為java2。
java.applet:Applet程序開發包(已經不用了)。
Applet指的是在網頁上嵌套的程序,可以使用Applet做一個動態的效果。
Applet是最早的Java出現的形式,功能類似于今天的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代碼進行引用。
解釋:關于Applet與Application的區別
Applet指的是在網頁上嵌套的程序,是采用繪圖的方式完成的顯示,而Application是在主方法中運行,通過命令行執行(如果要再實現同樣的功能,都使用Canvas繪圖——HTML5)。
jar命令
在任何一個項目里面,一定會存在有大量的.class文件,那么如果將這些.class文件直接交給用戶使用,那么會造成文件越多,并且會導致程序非常沒有結構,所以在交付用戶使用之前,會使用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
輸出結果:
Hello World !
在以后的開發之中需要大量的使用第三方的jar文件,那么所有的jar文件必須配置CLASSPATH,否則不能夠使用。最簡單的配置方式可以在環境屬性中完成。
總結
1、以后開發的程序一定要有包的存在。
2、如果包沖突的時候要寫上完整的類名稱。
3、以后使用第三方jar文件必須配置CLASSPATH。
以上就是動力節點java培訓機構小編介紹的“java包的定義和使用方法”的內容,希望對大家有幫助,更多java最新資訊請繼續關注動力節點java培訓機構官網,每天會有精彩內容分享與你。
相關免費視頻教程推薦
零基礎java教程下載——包的定義:http://www.ilovecolors.com.cn/xiazai/2597.html
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習