| 修飾符 | 同類 | 同包 | 不同包子類 | 不同包非子類 |
|---|---|---|---|---|
public | ✓ | ✓ | ✓ | ✓ |
protected | ✓ | ✓ | ✓ | ✗ |
package-private (無) | ✓ | ✓ | ✗ | ✗ |
private | ✓ | ✗ | ✗ | ✗ |
package 語句必須為非註釋首行com.company.project.module(反轉域名)import pkg.Class 單類導入,import pkg.* 包導入public classpublic class 名必須與文件名一致public class 時文件名任意public 或 package-privateprivate 隱藏實現細節getXxx()/setXxx() 控制邏輯(驗證、日誌、懶加載)源文件:com/example/User.java 包聲明:package com.example; 編譯:javac -d out com/example/User.java 輸出:out/com/example/User.class 運行:java -cp out com.example.User
JVM 按 CLASSPATH 根目錄 + 包路徑查找 .class。
com.company.utilcom.company.domaincom.company.apicom.company.impl(包私有或非 public)權限控制核心是封裝變化:將易變實現隱藏在 private/package-private,穩定契約暴露為 public/protected。善用包結構組織模塊邊界,配合 import 管理依賴,構建高內聚低耦合的系統架構。