java包的作用是為了區別類名的命名空間
1、把功能相似或相關的類或接口組織在同一個包中,方便類的查找和使用。、
2、如同文件夾一樣,包也采用了樹形目錄的存儲方式。同一個包中的類名字是不同的,不同的包中的類的名字是可以相同的,
當同時調用兩個不同包中相同類名的類時,應該加上包名加以區別。因此,包可以避免名字沖突。
3、包也限定了訪問權限,擁有包訪問權限的類才能訪問某個包中的類。
創建包
創建包的時候,你需要為這個包取一個合適的名字。之后,如果其他的一個源文件包含了這個包提供的類、接口、枚舉或者注釋類型的時候,都必須將這個包的聲明放在這個源文件的開頭。
包聲明應該在源文件的第一行,每個源文件只能有一個包聲明,這個文件中的每個類型都應用於它。
如果一個源文件中沒有使用包聲明,那么其中的類,函數,枚舉,注釋等將被放在一個無名的包(unnamed package)中。
例子
讓我們來看一個例子,這個例子創建了一個叫做animals的包。通常使用小寫的字母來命名避免與類、接口名字的沖突。
在 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();
}
}
import 關鍵字
為了能夠使用某一個包的成員,我們需要在 Java 程序中明確導入該包。使用 "import" 語句可完成此功能。
在 java 源文件中 import 語句應位於 package 語句之后,所有類的定義之前,可以沒有,也可以有多條,其語法格式為:
import package1[.package2…].(classname|*);
如果在一個包中,一個類想要使用本包中的另一個類,那么該包名可以省略。
通常,一個公司使用它互聯網域名的顛倒形式來作為它的包名.例如:互聯網域名是 runoob.com,所有的包名都以 com.runoob 開頭。包名中的每一個部分對應一個子目錄。
例如:有一個 com.runoob.test 的包,這個包包含一個叫做 Runoob.java 的源文件,那么相應的,應該有如下面的一連串子目錄:
....\com\runoob\test\Runoob.java
