15.java 包的定義和使用

概念

包指的是一個程序的目錄。在最早的時候如果要開發一個程序,只需要定義個*.java文件,然後再該文件中編寫所需的類,編譯之後程序將直接保存在當前目錄下,而利用包可以實現同一個程序的拆分。

爲了更好地組織類,Java 提供了包機制,用於區別類名的命名空間。

Java 使用包(package)這種機制是爲了防止命名衝突,訪問控制,提供搜索和定位類(class)、接口、枚舉(enumerations)和註釋(annotation)等。爲這些類型提供訪問保護和命名空間管理的功能。

包語句的語法格式爲:

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

示例:

package net.java.util;
public class hello{
    public static void main(String args[]){
        System.out.println("hello world");
    }
}

那麼它的路徑應該是 net/java/util/hello.java 這樣保存的。 package(包) 的作用是把不同的 java 程序分類保存,更方便的被其他 java 程序調用。

最好不要自己手工創建這些目錄,應該使用命令自動生成,如下:

  • 編譯: javac -d . hello.java

    “-d”:表示生成目錄,根據package的定義生成。

    “.” :表示保存的路徑,如果爲"."表示在當然所在的路徑下生成。

類都應當定義在包中,那麼完整的類名就是:"包.類"。

包的作用

  1. 把功能相似或相關的類或接口組織在同一個包中,方便類的查找和使用。
  2. 如同文件夾一樣,包也採用了樹形目錄的存儲方式。同一個包中的類名字是不同的,不同的包中的類的名字是可以相同的,當同時調用兩個不同包中相同類名的類時,應該加上包名加以區別。因此,包可以避免名字衝突。
  3. 包也限定了訪問權限,擁有包訪問權限的類才能訪問某個包中的類。

包的導入

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

在 java 源文件中 import 語句應位於 package 語句之後,所有類的定義之前,可以沒有,也可以有多條,其語法格式爲:

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

使用“包.*”通配符,表示導入程序裏面所需要的類,而不是全部導入。

如果在一個包中,一個類想要使用本包中的另一個類,那麼該包名可以省略。

常用系統包

  1. java.lang: 包含了String、object、Interger等類。從jdk1.1之後,此包會自動導入。
  2. java.lang.reflect:反射包;
  3. java.util: java的工具包,提供了大量工具類。
  4. java.util.regex: 正則工具包。
  5. java.text: 國際化處理包。
  6. java.io: 進行輸入、輸出處理,以及文件處理。
  7. java.net: 網絡編程開發包。
  8. java.sql: 數據庫程序開發包。
  9. java.applet: Applet程序開發包,已廢棄。Applet是嵌套在網頁上的java程序,採用繪圖的方式完成網頁的顯示,實現一些動態效果,隨着時間的發展已經不再使用了。
  10. java.awt、javax.swing:圖形界面開發包。主要進行單機版程序界面開發。

    • jdk1.0的時候推出了awt開發包,但是該包大量使用了windows api,導致程序缺乏可移植性。
    • jdk1.2的時候推出了javax.swing開發包,採用了java自己編寫的api,是一個輕量級的GUI工具包。

jar 命令

在任何一個項目中肯定會存在大量的.class文件,如果將這些.class文件直接交付,會導致文件過多,而且程序非常沒有結果,所以在交付用戶使用之前,會使用jar命令將包中的class文件壓縮成一個文件。

生成的jar文件不能直接使用,需要將其文件路徑配置到CLASSPATH中,如果使用第三方jar文件,也必須配置。

補充:CLASSPATH是java程序解釋類文件時所使用的加載路徑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章