java包的定義和使用方法

java包的定義和使用方法

長(zhǎng)沙牛耳教育      2022-03-29 19:40:01     13

java包的定義和使用方法,今天長(zhǎng)沙牛耳教育java培訓(xùn)機(jī)構(gòu)小編為大家介紹“java包的定義和使用方法”,希望通過(guò)此文能夠讓大家熟知java包的定義和使用方法,

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹


今天長(zhǎng)沙牛耳教育java培訓(xùn)機(jī)構(gòu)小編為大家介紹“java包的定義和使用方法”,希望通過(guò)此文能夠讓大家熟知java包的定義和使用方法,下面就隨小編一起看看java包的定義和使用方法。



  java包的定義


  java包指得是一個(gè)程序的目錄,包名字只能為小寫(xiě)。


  在最早的時(shí)候,如果要開(kāi)發(fā)一個(gè)程序,只需要定義一個(gè)*.java文件,然后在這個(gè)文件里編寫(xiě)所需要的類(lèi)文件,而在編譯之后程序?qū)⒅苯颖4嬖诟夸浵拢冒梢詫?shí)現(xiàn)同一個(gè)程序的拆分,即:根據(jù)我們的要求將代碼保存在不同的目錄下。


  如果要定義我們的包,可以使用package關(guān)鍵字完成。


范例:定義包


package cn.mldn.demo;  // 這就是一個(gè)包


public class Helo {

    public static void main(String args[]) {

        System.out.println("Hello world !");

    }

}


  如果在定義包的時(shí)候出現(xiàn)了“.”,那么就表示子目錄。如果說(shuō)類(lèi)有包的定義了,那么就必須讓其保存在特定的目錄下,不過(guò)不要自己去手工創(chuàng)建這些目錄,我們應(yīng)該使用命令自動(dòng)生成:


 ?。?)打包編譯:javac -d . Hello.java。


         “-d”:生成目錄,根據(jù)package的定義生成。


        “.”:設(shè)置保存的路徑,如果為“.”表示在當(dāng)前所在路徑下生成。


   ?。?)在解釋程序的時(shí)候,不要進(jìn)入到包里面解釋程序,應(yīng)該在包處面輸入類(lèi)的完整名字(包.類(lèi))。


         輸入:java cn.mldn.demo.Hello


  以后所有的類(lèi)都一定要定義在包之中,那么完整的類(lèi)名稱(chēng)就是“包.類(lèi)”。



  java包的導(dǎo)入


  使用包可以將一個(gè)完整的程序拆分為不同的文件進(jìn)行分別保存,這樣就會(huì)造成一個(gè)問(wèn)題,不同包之間有可能會(huì)進(jìn)行互相訪問(wèn),那么此時(shí)就需要使用導(dǎo)包的操作,使用import語(yǔ)句完成即可。


  范例:包的導(dǎo)入,定義一個(gè)cn.mldn.util.Message的類(lèi)


package cn.mldn.util;


public class Message {

    public void print() {

        Systen.out.println("Hello World !");

    }

}


  定義一個(gè)cn.mldn.test.TestMessage的類(lèi)

  

package cn.mldn.test;


import cn.mldn.util.Message;  // 導(dǎo)入要使用的類(lèi)


public class TestMessage{

    public static void main(String args[]) {

        Message msg = new Message();

        msg.print();

    }

}


  對(duì)于程序的編譯應(yīng)該采用先編譯Message,再編譯TestMessage。


  編譯:


javac -d . Message.java

javac -d . TestMessage.java


  Java編譯器考慮到了作為大型程序開(kāi)發(fā)的時(shí)候,有可能會(huì)存在有多個(gè).java文件互相引用,為了解決這個(gè)問(wèn)題,提供了通配符“”:javac -d . *.java。


  編譯并執(zhí)行:


javac -d . *.java

java cn.mldn.test.TestMessage


  輸出結(jié)果:


  Hello World !


  但是發(fā)現(xiàn)在導(dǎo)入包的時(shí)候也出現(xiàn)了一個(gè)問(wèn)題,如果使用一個(gè)包中類(lèi)的時(shí)候要編寫(xiě)“import 包.類(lèi)”,那么如果要使用一個(gè)包中多個(gè)類(lèi)的時(shí)候,那么肯定要重復(fù)去編寫(xiě)“import 包.類(lèi)”,這樣很麻煩,所以此時(shí)可以使用“import 包.”的方法來(lái)代替一個(gè)包中多個(gè)類(lèi)的導(dǎo)入操作。


  使用“import 包.”指的并不是全部導(dǎo)入,而是只導(dǎo)入程序里面所需要的類(lèi),所以不需要去考慮性能問(wèn)題。


  但是既然出現(xiàn)了導(dǎo)包操作,那么就必須有一個(gè)重要的問(wèn)題注意,有可能同一個(gè)代碼里面會(huì)同時(shí)導(dǎo)入不同的包,并且不同的包里有可能會(huì)存在同名類(lèi)。


  假如現(xiàn)在有兩個(gè)類(lèi):cn.mldn.util.Message和org.lxh.Message。由于某種需要,要同時(shí)導(dǎo)入以上兩個(gè)包。


  范例:TestMessage導(dǎo)入兩個(gè)包


package cn.mldn.test;


// 導(dǎo)入兩個(gè)同名稱(chēng)的類(lèi)

import cn.mldn.util.Message;

import org.lxh.Message;


public class TestMessage{

    public static void main(String args[]) {

        // 這種情況只能加上類(lèi)的包名,使用完整名稱(chēng)

        cn.mldn.util.Message msg = new cn.mldn.util.Message();

        msg.print();

    }

}



  系統(tǒng)常見(jiàn)包


  Java本身提供了大量的程序開(kāi)發(fā)包(除了Java自己提供的,還有許多第三方提供了開(kāi)發(fā)包)。在Java的開(kāi)發(fā)有如下一些常見(jiàn)的系統(tǒng)包:


  java.lang:包含了String、Object、Integer等類(lèi),從JDK1.1開(kāi)始此包自動(dòng)導(dǎo)入。


  java.lang.reflect:反射開(kāi)發(fā)包。


  java.util:Java的工具包,提供了大量的工具類(lèi),比如鏈表。


  java.util.regex:正則工具包。


  java.text:國(guó)際化處理程序包。


  java.io:進(jìn)行輸入、輸出處理以及文件操作。


  java.net:網(wǎng)絡(luò)編程開(kāi)發(fā)包。


  java.sql:數(shù)據(jù)庫(kù)程序開(kāi)發(fā)包。


  java.awt、javax.swing:圖形界面的開(kāi)發(fā)包,javax指拓展,主要功能是進(jìn)行單機(jī)版程序界面編寫(xiě)。


   (1)JDK1.0的時(shí)候主要推出的是awt開(kāi)發(fā)包,但是這個(gè)開(kāi)發(fā)包使用了大量的windows圖形函數(shù)。


   (2)JDK1.2的時(shí)候隆重推出了javax.swing開(kāi)發(fā)包,是一個(gè)輕量級(jí)(Java自己不使用windows),Java從此更名為java2。


  java.applet:Applet程序開(kāi)發(fā)包(已經(jīng)不用了)。


  Applet指的是在網(wǎng)頁(yè)上嵌套的程序,可以使用Applet做一個(gè)動(dòng)態(tài)的效果。


  Applet是最早的Java出現(xiàn)的形式,功能類(lèi)似于今天的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);

    }

}


  編譯之后并不能表示其可以正常的使用,還需要編寫(xiě)html代碼進(jìn)行引用。


  解釋?zhuān)宏P(guān)于Applet與Application的區(qū)別


  Applet指的是在網(wǎng)頁(yè)上嵌套的程序,是采用繪圖的方式完成的顯示,而Application是在主方法中運(yùn)行,通過(guò)命令行執(zhí)行(如果要再實(shí)現(xiàn)同樣的功能,都使用Canvas繪圖——HTML5)。



  jar命令


  在任何一個(gè)項(xiàng)目里面,一定會(huì)存在有大量的.class文件,那么如果將這些.class文件直接交給用戶使用,那么會(huì)造成文件越多,并且會(huì)導(dǎo)致程序非常沒(méi)有結(jié)構(gòu),所以在交付用戶使用之前,會(huì)使用jar命令針對(duì)于*.class進(jìn)行壓縮,并且壓縮的都是以包為主的。


  jar命令

  


  范例:使用jar,將原來(lái)生成的class類(lèi)刪除


javac -d . Message.java

jar -cvf my.jar cn


  這樣就形成了一個(gè)jar文件。生成的my.jar文件并不能夠直接使用,必須配置CLASSPATH才可以加載。


SET CLASSPATH=. ;位置my.jar

javac -d . TestMessage.java

java cn.mldn.test.TestMessage


  輸出結(jié)果:


  Hello World !


  在以后的開(kāi)發(fā)之中需要大量的使用第三方的jar文件,那么所有的jar文件必須配置CLASSPATH,否則不能夠使用。最簡(jiǎn)單的配置方式可以在環(huán)境屬性中完成。


  總結(jié)


  1、以后開(kāi)發(fā)的程序一定要有包的存在。


  2、如果包沖突的時(shí)候要寫(xiě)上完整的類(lèi)名稱(chēng)。


    3、以后使用第三方j(luò)ar文件必須配置CLASSPATH。


以上就是長(zhǎng)沙牛耳教育java培訓(xùn)機(jī)構(gòu)小編介紹的“java包的定義和使用方法”的內(nèi)容,希望對(duì)大家有幫助,更多java最新資訊請(qǐng)繼續(xù)關(guān)注長(zhǎng)沙牛耳教育java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會(huì)有精彩內(nèi)容分享與你。


相關(guān)免費(fèi)視頻教程推薦


零基礎(chǔ)java教程下載——包的定義:http://www.bjpowernode.com/xiazai/2597.html


培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。