亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java基礎教程之包(package)

2019-11-26 15:26:32
字體:
來源:轉載
供稿:網友

我們已經寫了一些Java程序。之前的每個Java程序都被保存為一個文件,比如Test.java。隨后,該程序被編譯為Test.class。我們最終使用$java Test來運行程序。

然而,在一個正常的Java項目中,我們往往需要編寫不止一個.java程序,最終的Java產品包括了所有的Java程序。因此,Java需要解決組織Java程序的問題。包(package)的目的就是為了更好的組織Java程序。

包的建立

包的建立非常簡單。我們只用在Java程序的開始加入package就可以了。我們以Human類為例,將它放入包中:

復制代碼 代碼如下:

package com.vamei.society;

public class Human
{
    /**
     * constructor
     */
    public Human(int h)
    {
        this.height = h;
        System.out.println("I'm born");
    }

    /**
     * accessor
     */
    public int getHeight()
    {
        return this.height;
    }

    /**
     * mutator
     */
    public void growHeight(int h)
    {
        this.height = this.height + h;
    }

    private int height;
}

上面的第一行語句

復制代碼 代碼如下:

package com.vamei.society;

表示該程序在com.vamei.society包中。com.vamei(vamei.com的反寫)表示包作者的域名 (很可惜,這個域名已經被別人注冊了,所以只起演示作用)。Java要求包要有域名前綴,以便區分不同作者。society為進一步的本地路徑名。com.vamei.society共同構成了包的名字。

包為Java程序提供了一個命名空間(name space)。一個Java類的完整路徑由它的包和類名共同構成,比如com.vamei.society.Human。相應的Human.java程序要放在com/vamei/society/下。類是由完整的路徑識別的,所以不同的包中可以有同名的類,Java不會混淆。比如com.vamei.society.Human和com.vamei.creature.Human是兩個不同的類。

再看一個細節。Human類是public的,其構造方法也是public的,所以任意其他對象都可以調用該類。我們之前說過,一個Java文件中只能有一個public的類,該類要去.java文件同名。一個類可以沒有public關鍵字,它實際上也表示一種權限: 該類在它所在的包中可見。也就是說,包中的其他Java程序可以訪問該類。這是Java中的默認訪問權限。

同樣,對象的成員也可以是默認權限(包中可見)。比如我們去掉getHeight()方法前面的public關鍵字。

包的調用

我們只需要將Human.java編譯的Human.class放入相應的文件夾就可以了。比如,我將Human.class放入com/vamei/society/中。實際上,你也可以把.java文件放入相應路徑,Java會在使用時自動編譯。

如果整個包(也就是com文件夾)位于當前的工作路徑中,那么不需要特別的設置,就可以使用包了,比如下面的TestAgain.java:

復制代碼 代碼如下:

import com.vamei.society.*;

public class TestAgain
{
    public static void main(String[] args)
    {
        Human aPerson = new Human(180);
        System.out.println(aPerson.getHeight());
    }

}

import用于識別路徑。利用import語句,我們可以引入相應路徑下的類。*表示引入society文件夾下的所有類。在TestAgain中,我們直接使用了Human類。

我們也可以提供類的完整的路徑。這可以區分同名但不同路徑的類,比如:

復制代碼 代碼如下:

public class TestAgain
{
    public static void main(String[] args)
    {
        com.vamei.society.Human aPerson =
                  new com.vamei.society.Human(180);
        System.out.println(aPerson.getHeight());
    }

}

由于我們提供了完整的類路徑,所以不需要使用import語句。

如果包沒有放在當前工作路徑下,我們在使用包時,需要通知Java。比如,我們將包放在/home/vamei/javapackage中,這樣Human.class位于/home/vamei/javapackage/com/vamei/society/Human.class,而我們的工作路徑為/home/vamei。這樣,包就無法被找到。一個方法是在使用javac和java時,用-classpath說明包所在的文件夾路徑,比如:

復制代碼 代碼如下:

$javac -classpath /home/vamei/javapackage:. TestAgain.java

$java -classpath /home/vamei/javapackage:. TestAgain


就是從/home/vamei/javapackage和工作路徑(.)中尋找包。Java可以從/home/vamei/javapackage中可以找到Human類,從.中可以找到TestAgain類。

另外也可以設置系統的CLASSPATH環境變量,將上述路徑加入到該變量中,而不用每次都鍵入-classpath選項。

類似于包的機制在其他語言中也很常見,比如Python中的import機制。它們都是為了更好的組織和使用已有的程序。利用包,我們可以比較容易的拓展Java程序,使用已有的Java程序庫。注意到,包管理的是.class文件。Java號稱"一次編譯,處處運行" (Compile Once, run anywhere)。.class文件可以在任意裝有Java虛擬機(JVM, Java Virtual Machine)的平臺上運行,這幫助我們克服了系統差異造成的程序移植困難。

系統之間的差異可以非常大。如果我們用C語言編寫程序,需要將源程序在各個平臺上重新編譯,以適應不同的硬件條件。 Java虛擬機銜接了平臺和Java宇宙,它構成了硬件和編程邏輯的中間層。JVM隱藏了硬件差異,提供給程序員一個“標準”的Java宇宙。而.class文件可以看做這個 Java宇宙中流通的通貨。在JVM的基礎設施下,加上包的管理輔助,Java程序實現了良好的可移植性 (portability)。

總結

package, import

默認權限: 包中可見

-classpath, CLASSPATH

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
69久久夜色精品国产69乱青草| 欧美日本啪啪无遮挡网站| 国产精品久久久久久久久久久久久久| 国产精品高潮在线| 亚洲一区二区久久久久久久| 菠萝蜜影院一区二区免费| yw.139尤物在线精品视频| 97香蕉超级碰碰久久免费的优势| 亚洲欧洲国产一区| 91在线观看免费高清| 日韩在线观看视频免费| 国产视频福利一区| 亚洲精品成人免费| 亚洲自拍偷拍福利| 欧美在线视频免费观看| 亚洲美女av黄| 亚洲**2019国产| 91极品视频在线| 亚洲视频axxx| 久久男人的天堂| 久久色精品视频| 中文字幕久久亚洲| 国产精品激情av在线播放| 亚洲直播在线一区| 国产精品亚洲自拍| 亚洲国产高潮在线观看| 亚洲综合最新在线| 狠狠躁夜夜躁人人爽超碰91| 高清日韩电视剧大全免费播放在线观看| 青青精品视频播放| 亚洲精品国产欧美| 中文字幕欧美视频在线| 中文字幕日韩电影| 中文字幕不卡在线视频极品| 国产91精品黑色丝袜高跟鞋| 国产91色在线播放| 91在线|亚洲| 日韩中文在线中文网三级| 精品国产91久久久| 日韩av黄色在线观看| 国产午夜精品理论片a级探花| 国产精品激情av电影在线观看| 成人激情综合网| 欧美理论电影在线观看| 亚洲香蕉av在线一区二区三区| 91综合免费在线| 中文字幕av一区二区| 97国产suv精品一区二区62| 日本在线观看天堂男亚洲| 国产精品日韩在线播放| 日韩av在线导航| 亚洲男人av在线| 日本精品视频在线| 97超碰蝌蚪网人人做人人爽| 欧美视频专区一二在线观看| 久精品免费视频| 91国产美女在线观看| 色偷偷偷综合中文字幕;dd| 久久精品99久久香蕉国产色戒| 久久伊人精品一区二区三区| 91精品国产色综合久久不卡98| 欧洲成人在线视频| 欧美精品久久久久久久免费观看| 中国china体内裑精亚洲片| 国产成人精品优优av| 亚洲电影在线观看| 国产在线久久久| 欧美亚洲视频在线看网址| 亚洲人av在线影院| 亚洲精品成人网| 欧美精品999| 91亚洲精品在线观看| 日韩美女在线观看| 九九热视频这里只有精品| 亚洲免费成人av电影| 国产精品jizz在线观看麻豆| 国产美女久久久| 日韩精品中文字幕在线观看| 日本高清视频精品| 黄网站色欧美视频| 国产91色在线|免| 国产精品青青在线观看爽香蕉| 国产视频精品va久久久久久| 欧美大片在线免费观看| 成人精品视频在线| 国产日韩在线视频| 一本色道久久综合狠狠躁篇怎么玩| 激情懂色av一区av二区av| 久久艳片www.17c.com| 国产一区二区激情| 久久精品夜夜夜夜夜久久| 国产最新精品视频| 欧美性极品xxxx做受| 欧美性猛交xxxx富婆弯腰| 久久亚洲电影天堂| 庆余年2免费日韩剧观看大牛| 国产91|九色| 17婷婷久久www| 日韩av免费在线播放| 青青草99啪国产免费| 91网站免费看| 欧美自拍视频在线观看| 裸体女人亚洲精品一区| 久久国产一区二区三区| 日韩国产欧美精品在线| 91chinesevideo永久地址| 国语自产偷拍精品视频偷| 成人444kkkk在线观看| 国产精品第一视频| 亚洲专区在线视频| 日本一区二区不卡| 国产一区二区久久精品| 精品综合久久久久久97| 国产精品一区专区欧美日韩| 欧美日韩国产综合视频在线观看中文| 日韩欧美国产中文字幕| 久久久女人电视剧免费播放下载| 精品国内产的精品视频在线观看| 亚洲欧美日韩中文在线制服| 色www亚洲国产张柏芝| 欧美性视频在线| 国产免费一区二区三区在线观看| 久久久久国产精品免费网站| 97香蕉久久夜色精品国产| 日韩亚洲欧美成人| 狠狠躁夜夜躁人人爽超碰91| 久久久久久久香蕉网| 91精品国产九九九久久久亚洲| 亚洲国产中文字幕在线观看| 中文字幕日韩欧美在线| 中文字幕欧美精品日韩中文字幕| 亚洲综合色av| 国产97免费视| 亚洲女在线观看| 51ⅴ精品国产91久久久久久| 韩国美女主播一区| 成人性生交大片免费看视频直播| 在线观看欧美www| 欧美激情奇米色| 91深夜福利视频| 亚洲自拍偷拍一区| 欧美日在线观看| 最近2019中文字幕一页二页| 91嫩草在线视频| 亚洲国产小视频在线观看| 成人国产在线激情| 欧美一区二区视频97| 国产精品老女人精品视频| 亚洲天堂一区二区三区| 日韩精品高清在线| 欧美乱大交做爰xxxⅹ性3| 国产精品九九久久久久久久| 日韩亚洲欧美中文在线| 国产精品对白刺激| 亚洲国产精品va在线观看黑人| 国产精品ⅴa在线观看h| 欧美视频专区一二在线观看| 欧美亚洲视频一区二区| 色噜噜国产精品视频一区二区| 欧美精品18videos性欧美| 国产精品第七十二页| 国产成人精品一区二区三区| 亚洲人成伊人成综合网久久久| 最近2019好看的中文字幕免费|