首頁 > Java > java教程 > 主體

如何在不使用「Friend」概念的情況下實現對 Java 中私有方法的有限存取?

Patricia Arquette
發布: 2024-11-12 11:50:02
原創
590 人瀏覽過

How Can I Achieve Limited Access to Private Methods in Java Without Using the

在Java 中提供對私有方法的有限存取

在Java 中,不可能直接複製C「朋友」概念,這允許外部實體存取類別的私有成員。然而,使用替代技術可以實現類似的行為。

愛情簽名方法

實現受控存取的一種巧妙方法是使用「秘密」簽章。它的工作原理如下:

  1. 在一個包中創建一個公共類,該類表示訪問另一個包中的私有方法所需的“秘密簽名”。此簽名類別可以包含私有建構函式以確保排他性。
  2. 在需要存取私有成員的類別中,定義接受簽名類別的實例作為參數的公共方法。
  3. 呼叫時來自其他套件的公共方法,簽名類別實例充當「證明」以允許

範例:

考慮來自不同包的兩個類,Romeo 和Juliet。 Romeo 需要存取 Juliet 中的私有方法,而不將其設為子類別。

朱麗葉的程式碼:

// Capulet package
public class Juliet {

    public static void cuddle(Romeo.Love love) {
        Objects.requireNonNull(love);
        // Juliet's private methods can be accessed here.
    }
    
}
登入後複製

Romeo.Love 是一個具有私有建構子的公用類,確保只有 Romeo 可以建立實例。

Romeo 的程式碼:

// Montague package
public class Romeo {

    public static final class Love { private Love() {} }
    private static final Love love = new Love();

    public static void cuddleJuliet() {
        Juliet.cuddle(love);
    }
}
登入後複製

此方法利用簽名類構造函數的排他性來授予對所需方法的選擇性訪問,同時保持封裝和隱私。

以上是如何在不使用「Friend」概念的情況下實現對 Java 中私有方法的有限存取?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板