在編寫(xiě) Java 程序時(shí),隨著程序架構(gòu)越來(lái)越大,類(lèi)的個(gè)數(shù)也越來(lái)越多狡恬,這時(shí)就會(huì)發(fā)現(xiàn)管理程序中維護(hù)類(lèi)名稱(chēng)也是一件很麻煩的事,尤其是一些同名問(wèn)題的發(fā)生蝎宇。有時(shí)弟劲,開(kāi)發(fā)人員還可能需要將處理同一方面的問(wèn)題的類(lèi)放在同一個(gè)目錄下,以便于管理姥芥。Java 為了解決上述問(wèn)題兔乞,提供了包機(jī)制。
系統(tǒng)包
包允許將類(lèi)組合成較小的單元(類(lèi)似文件夾)凉唐,它基本上隱藏了類(lèi)庸追,并避免了名稱(chēng)上的沖突。包允許在更廣泛的范圍內(nèi)保護(hù)類(lèi)台囱、數(shù)據(jù)和方法淡溯,可以在包內(nèi)定義類(lèi),而在包外的代碼不能訪問(wèn)該類(lèi)簿训。
包的 3 個(gè)作用如下:
- 區(qū)分相同名稱(chēng)的類(lèi)咱娶。
- 能夠較好地管理大量的類(lèi)。
- 控制訪問(wèn)范圍强品。
在 Java 語(yǔ)言中膘侮,開(kāi)發(fā)人員可以自定義包,也可以使用系統(tǒng)包的榛,常用的系統(tǒng)包如表 1 所示。
自定義包
Java 的系統(tǒng)包無(wú)須定義可以直接調(diào)用谦去,當(dāng)然也可以自定義包鳄哭。下面來(lái)介紹自定義包的聲明和使用方法妆丘。
1. 包的聲明
為了聲明一個(gè)包,首先必須建立一個(gè)相應(yīng)的目錄結(jié)構(gòu)鱼填,子目錄與包名一致苹丸,然后在需要放入該包的類(lèi)文件開(kāi)頭聲明包苇经,形式如下:
package 包名;
2. 包的使用
在 Java 中扇单,為了裝載使用已經(jīng)編譯好的包蜘澜,通臣娑迹可以使用以下三種方法。
- 一是在要引用的類(lèi)名前帶上包名作為修飾符趟章。代碼如下:
bookexample.Test test = new bookexampie.Test();
其中,bookexample 是包名蜀漆,Test 是包中的類(lèi)名确丢,test 是類(lèi)的對(duì)象鲜侥。
- 二是在文件開(kāi)頭使用 import 引用包中的類(lèi)描函。代碼如下:
import bookexample.Test;
- 三是在文件前使用 import 引用整個(gè)包舀寓。如下代碼將 bookexample 整個(gè)包引入:
import bookexample.*;
Java使用自定義包
(1) 創(chuàng)建一個(gè)名為 com.dao 的包互墓。
(2) 向 com.dao 包中添加一個(gè) Student 類(lèi)篡撵,該類(lèi)包含一個(gè)返回 String 類(lèi)型數(shù)組的 GetAll() 方法酸休。Student 類(lèi)代碼如下:
package com.dao;
public class Student
{
public static String[] GetAll()
{
String[] namelist={"李潘","鄧國(guó)良","任玲玲","許月月","歐陽(yáng)娜","趙曉慧"};
return namelist;
}
}
(3) 創(chuàng)建 com.test 包斑司,在該包里創(chuàng)建帶 main() 方法的 Test 類(lèi)宿刮。
(4) 在 main() 方法中遍歷 Student 類(lèi)的 GetAll() 方法中的元素內(nèi)容僵缺,在遍歷內(nèi)容之前磕潮,使用 import 引入 com.dao 整個(gè)包自脯。完整代碼如下:
package com.test;
import com.dao.Student;
public class Test
{
public static void main(String[] args)
{
System.out.println("學(xué)生信息如下:");
for(String str:Student.GetAll())
{
System.out.println(str);
}
}
}
(5) 運(yùn)行上一步驟的代碼進(jìn)行測(cè)試膏潮,最終的輸出結(jié)果如下
學(xué)生信息如下:
李潘
鄧國(guó)良
任玲玲
許月月
歐陽(yáng)娜
趙曉慧