Java 面象對象之包(package)

Java 使用包(package)這種機制是為了防止命名沖突,訪問控制,提供搜索和定位類(class)、接口、枚舉(enumerations)和注釋(annotation)等。

1.包的作用

a.把功能相似或相關(guān)的類或接口組織在同一個包中,方便類的查找和使用。

b.如同文件夾一樣,包也采用了樹形目錄的存儲方式。同一個包中的類名字是不同的,不同的包中的類的名字是可以相同的,當同時調(diào)用兩個不同包中相同類名的類時,應(yīng)該加上包名加以區(qū)別。因此,包可以避免名字沖突。

c.包也限定了訪問權(quán)限,擁有包訪問權(quán)限的類才能訪問某個包中的類。

包語句的語法格式為:

package pkg1[.pkg2[.pkg3…]];

例如,一個Something.java 文件它的內(nèi)容:

package net.java.util;
public class Something{
   ...
}

那么它的路徑應(yīng)該是 net/java/util/Something.java 這樣保存的。 package(包) 的作用是把不同的 java 程序分類保存,更方便的被其他 java 程序調(diào)用。

一個包(package)可以定義為一組相互聯(lián)系的類型(類、接口、枚舉和注釋),為這些類型提供訪問保護和命名空間管理的功能。以下是一些 Java 中的包:

java.lang-打包基礎(chǔ)的類
java.io-包含輸入輸出功能的函數(shù)

開發(fā)者可以自己把一組類和接口等打包,并定義自己的包。而且在實際開發(fā)中這樣做是值得提倡的,當你自己完成類的實現(xiàn)之后,將相關(guān)的類分組,可以讓其他的編程者更容易地確定哪些類、接口、枚舉和注釋等是相關(guān)的。

2.創(chuàng)建包

創(chuàng)建包的時候,需要為這個包取一個合適的名字。之后,如果其他的一個源文件包含了這個包提供的類、接口、枚舉或者注釋類型的時候,都必須將這個包的聲明放在這個源文件的開頭。

包聲明應(yīng)該在源文件的第一行,每個源文件只能有一個包聲明,這個文件中的每個類型都應(yīng)用于它。

如果一個源文件中沒有使用包聲明,那么其中的類,函數(shù),枚舉,注釋等將被放在一個無名的包(unnamed package)中。

下面,創(chuàng)建一個名為homepage的包,在homepage包中創(chuàng)建一個Animal的類

package homepage;

public class Animal {
    public static void main(String[] args) {
        
    }
    
    public void eat() {
        System.out.println("eat something");
    }
}

那么,在別的類中如果調(diào)用Animal類,則需要語法如下:

import homepage.*;
public class Person {
    public static void main(String []args) {
    
        homepage.Animal animal = new homepage.Animal();
        animal.eat();
        
    }
}

3.import 關(guān)鍵字

為了能夠使用某一個包的成員,我們需要在 Java 程序中明確導入該包。使用 "import" 語句可完成此功能。

在 java 源文件中 import 語句應(yīng)位于 package 語句之后,所有類的定義之前,可以沒有,也可以有多條,其語法格式為:

import package1[.package2…].(classname|*);

4.package 的目錄結(jié)構(gòu)

類放在包中會有兩種主要的結(jié)果:

包名成為類名的一部分,

包名必須與相應(yīng)的字節(jié)碼所在的目錄結(jié)構(gòu)相吻合

通常,一個公司使用它互聯(lián)網(wǎng)域名的顛倒形式來作為它的包名.例如:互聯(lián)網(wǎng)域名是baidu.com,所有的包名都以 com.baidu 開頭。包名中的每一個部分對應(yīng)一個子目錄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容