首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 存取修飾符完整指南:除了類、變數、方法,還能修飾什麼?

     編輯:程式設計綜合問答

Java 的存取修飾符(public、protected、default、private)常用於類別、成員變數、方法。但它們的適用範圍不止於此。本文整理完整修飾目標,並解答「一個類別能混用多種修飾符嗎?」

存取修飾符可修飾的程式元素

元素可用修飾符說明
頂層類別public、default檔案名需與 public 類別同名;default 僅同套件可見
成員類別(巢狀類別)public、protected、default、private內部類別可用 private 封裝
介面public、default介面成員隱含 public static final / public abstract
建構子public、protected、default、privateprivate 建構子用於單例、工廠模式
成員變數(欄位)四種皆可包含實例與靜態變數
方法四種皆可包含實例、靜態、預設、抽象方法
區域變數不可使用區域變數無存取修飾符,生命週期侷限於區塊

一個類別能混用多種修飾符嗎?

當然可以,而且是常態。 一個設計良好的類別,通常會根據封裝需求,對不同成員給予不同可見性:

public class OrderService {
    // 公共 API
    public void submitOrder(Order order) { ... }

    // 子類可覆寫的擴展點
    protected void validateOrder(Order order) { ... }

    // 同套件輔助類可用
    void notifyWarehouse(Order order) { ... } // default

    // 完全內部實作細節
    private void calculateDiscount(Order order) { ... }

    // 內部靜態常數
    private static final int MAX_RETRY = 3;
}

修飾符能見性速查表

修飾符同類同套件子類同套件非子類不同套件子類不同套件非子類
public✓✓✓✓✓
protected✓✓✓✓✗
default✓✓✓✗✗
private✓✗✗✗✗

設計原則

  • 最小權限原則:預設用 private,需要時再放寬。
  • 介面隔離:對外暴露 public 介面,實作細節 private。
  • 繼承設計:預留給子類覆寫的方法用 protected。

熟練掌握各修飾符的適用對象與能見性,是寫出高內聚、低耦合 Java 程式碼的基礎功力。

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