在 Java 開發中,Package(包) 是組織類文件的核心機制,相當於電腦中的資料夾,用於管理編譯後的 .class 文件。合理使用包不僅能避免類名衝突,還能實現代碼的模組化與封裝。本文將系統梳理包的定義、編譯、訪問規則,以及 import 關鍵字的導包技巧與最佳實踐。
使用 package 關鍵字在源文件頂部聲明包名,例如:
package com.example.demo;
編譯時若需自動生成包目錄結構,可使用 javac -d . 類名.java 命令(-d 指定輸出目錄,. 表示當前路徑)。編譯器會根據包名自動創建多層目錄,將 .class 文件置於對應路徑下。
不同包下的類相互調用時,必須滿足:
public,否則僅限包內可見;.class 文件;com.example.demo.Dog dog = new com.example.demo.Dog();。全限定名雖然通用,但代碼冗長,這正是 import 機制誕生的原因。
import 關鍵字放在 package 聲明之後、類定義之前,用於簡化類名引用:
import com.example.demo.Dog; —— 明確依賴,利於 IDE 分析與重構;import com.example.demo.*; —— 導入該包下所有類,但可能引入無用類,增加命名衝突風險。建議: 優先使用單類導入,僅在確需大量使用同包類時考慮通配符。
-d 參數可將編譯產物輸出到獨立目錄,便於構建與部署;protected、默認包訪問權限,實現模組級封裝。package 聲明,多包聲明將編譯報錯;package 必須是源文件的第一條非註釋語句,前面不能有任何代碼(含 import)。自行創建兩個包(如 pkgA、pkgB),各定義一個 public 類,並在另一包中通過 import 相互調用方法,體會編譯、運行的完整流程。
作者:王可利(Star·星星)