在 Java 中,套件 是組織類別與介面的基本單位,提供命名空間隔離、存取權限控管與程式碼模組化的功能。良好的套件設計能有效避免類別名稱衝突,並提升專案的可維護性與可擴充性。
每個 Java 原始檔最開頭可使用 package 關鍵字宣告所屬套件:
package com.example.project.module;
public class MyClass {
// 類別內容
}
編譯後的 .class 檔案必須置於與套件名稱對應的目錄階層中(例如 com/example/project/module/MyClass.class),JVM 才能正確載入。
import com.example.utils.StringHelper;import com.example.utils.*;(僅匯入該層級類別,不遞迴子套件)import static java.lang.Math.PI; 可直接使用常數或靜態方法無需類別名稱前綴。| 修飾詞 | 同一類別 | 同一套件 | 子類別(不同套件) | 任意位置 |
|---|---|---|---|---|
| private | ✓ | ✗ | ✗ | ✗ |
| default (無修飾詞) | ✓ | ✓ | ✗ | ✗ |
| protected | ✓ | ✓ | ✓ | ✗ |
| public | ✓ | ✓ | ✓ | ✓ |
com.company.projectcontroller, service, repository, dto, exceptionJava 9 引入模組系統,透過 module-info.java 宣告模組相依性與導出套件,提供更強的封裝性:
module com.example.app {
requires java.sql;
exports com.example.app.api;
}