首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 套件命名規範:打造全域唯一的套件名稱

     編輯:Java 相關知識

Java 套件機制解決了類別命名衝突與類別檔案管理的兩大核心問題。由於套件由多個 .class 檔案組成,不像單一檔案那樣容易封裝,Java 採用目錄階層結構對應套件名稱,並強制要求套件名稱第一部分為開發者的網域名稱(反轉順序),確保全域唯一性。

套件命名的核心原則

根據慣例,編譯器強制套件名稱首段為網域名稱(由 InterNIC 保證唯一)。例如作者的網域 bruceeckel.com 反轉為 com.bruceeckel,再細分為 com.bruceeckel.util。若無自有網域,建議使用極罕見的名稱(如英文姓名)或申請低成本網域。

套件名稱解析為目錄路徑

Java 解譯器透過環境變數 CLASSPATH 尋找類別檔案。CLASSPATH 包含一或多個根目錄,解譯器將套件名稱中的點號替換為斜線,生成相對路徑。例如 com.bruceeckel.util 對應 com/bruceeckel/util 目錄,再結合 CLASSPATH 中的各項目進行搜尋。

實作範例:建立 com.bruceeckel.util 套件

// Vector.java
package com.bruceeckel.util;
public class Vector {
    public Vector() { System.out.println("com.bruceeckel.util.Vector"); }
}

// List.java
package com.bruceeckel.util;
public class List {
    public List() { System.out.println("com.bruceeckel.util.List"); }
}

這兩個檔案放置於 C:\DOC\JavaT\com\bruceeckel\util,CLASSPATH 設為 .;D:\JAVA\LIB;C:\DOC\JavaT。使用時透過 import com.bruceeckel.util.*; 匯入。

自動編譯與衝突處理

Java 編譯器具備自動編譯功能:當偵測到 .java 比 .class 新時,會自動重新編譯。若透過 import com.bruceeckel.util.*; import java.util.*; 同時匯入兩個含有 Vector 類別的套件,僅在實際使用 Vector 時才會發生衝突。解決方式是使用完整限定名稱 java.util.Vector 明確指定。

關鍵重點

  • 套件名稱 = 反轉網域名稱 + 專案分類
  • CLASSPATH 根目錄 + 套件路徑 = 類別檔案實際位置
  • 衝突發生於「使用時」而非「匯入時」,善用完整限定名稱消除歧義
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved