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

Java 訪問權限控制:package、public、protected、private 完整指南

     編輯:Java 相關知識

四大權限等級(由大到小)

修飾符同類同包不同包子類不同包非子類
public✓✓✓✓
protected✓✓✓✗
package-private (無)✓✓✗✗
private✓✗✗✗

包機制與命名規範

  • package 語句必須為非註釋首行
  • 目錄結構 = 包名(點號→斜槓)
  • 唯一包名慣例:com.company.project.module(反轉域名)
  • import pkg.Class 單類導入,import pkg.* 包導入
  • 同名類衝突時用全限定名區分

類級訪問權限

  • 每個編譯單元(.java)最多一個 public class
  • public class 名必須與文件名一致
  • 無 public class 時文件名任意
  • 類只能是 public 或 package-private

封裝最佳實踐

  1. 字段私有:private 隱藏實現細節
  2. 提供訪問器/變異器:getXxx()/setXxx() 控制邏輯(驗證、日誌、懶加載)
  3. 包內協作用 package-private:測試代碼、內部實現類互訪
  4. 繼承擴展用 protected:子類覆寫/調用父類內部邏輯
  5. API 公開用 public:接口、DTO、工具類

編譯單元與 CLASSPATH 解析

源文件: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.util
  • 領域模型放 com.company.domain
  • 介面定義放 com.company.api
  • 實現類放 com.company.impl(包私有或非 public)

總結

權限控制核心是封裝變化:將易變實現隱藏在 private/package-private,穩定契約暴露為 public/protected。善用包結構組織模塊邊界,配合 import 管理依賴,構建高內聚低耦合的系統架構。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved