java包的做用是爲了區別類名的命名空間 java
一、把功能類似或相關的類或接口組織在同一個包中,方便類的查找和使用。、函數
二、如同文件夾同樣,包也採用了樹形目錄的存儲方式。同一個包中的類名字是不一樣的,不一樣的包中的類的名字是能夠相同的,spa
當同時調用兩個不一樣包中相同類名的類時,應該加上包名加以區別。所以,包能夠避免名字衝突。blog
三、包也限定了訪問權限,擁有包訪問權限的類才能訪問某個包中的類。接口
建立包的時候,你須要爲這個包取一個合適的名字。以後,若是其餘的一個源文件包含了這個包提供的類、接口、枚舉或者註釋類型的時候,都必須將這個包的聲明放在這個源文件的開頭。域名
包聲明應該在源文件的第一行,每一個源文件只能有一個包聲明,這個文件中的每一個類型都應用於它。class
若是一個源文件中沒有使用包聲明,那麼其中的類,函數,枚舉,註釋等將被放在一個無名的包(unnamed package)中。test
讓咱們來看一個例子,這個例子建立了一個叫作animals的包。一般使用小寫的字母來命名避免與類、接口名字的衝突。import
在 animals 包中加入一個接口(interface):互聯網
/* 文件名: Animal.java */ package animals; interface Animal { public void eat(); public void travel(); }
接下來,在同一個包中加入該接口的實現:
package animals; /* 文件名 : MammalInt.java */ public class MammalInt implements Animal{ public void eat(){ System.out.println("Mammal eats"); } public void travel(){ System.out.println("Mammal travels"); } public int noOfLegs(){ return 0; } public static void main(String args[]){ MammalInt m = new MammalInt(); m.eat(); m.travel(); } }
爲了可以使用某一個包的成員,咱們須要在 Java 程序中明確導入該包。使用 "import" 語句可完成此功能。
在 java 源文件中 import 語句應位於 package 語句以後,全部類的定義以前,能夠沒有,也能夠有多條,其語法格式爲:
import package1[.package2…].(classname|*);
若是在一個包中,一個類想要使用本包中的另外一個類,那麼該包名能夠省略。
一般,一個公司使用它互聯網域名的顛倒形式來做爲它的包名.例如:互聯網域名是 runoob.com,全部的包名都以 com.runoob 開頭。包名中的每個部分對應一個子目錄。
例如:有一個 com.runoob.test 的包,這個包包含一個叫作 Runoob.java 的源文件,那麼相應的,應該有以下面的一連串子目錄:
....\com\runoob\test\Runoob.java