[英]Java Inner Class Access and Best Practices
我知道內部類可以訪問外部類中的所有內容(因為它是該類的成員)但是反過來呢?
外部類是否可以訪問內部類中的私有變量和方法?
我看過文章提到內部類應該是私有的,這樣它們只能被外部類訪問。 這對內部類的可訪問性有什么影響?
在內部類中處理訪問級別的最佳實踐是什么? 我假設更多的封裝更好,但這是以犧牲可訪問性為代價的嗎?
Effective Java(第2版)第22項:“非靜態的靜態成員類”對此主題進行了詳細介紹。
簡要總結:
static
的。 為了獲得技術,Effective Java調用這些靜態成員類而不是內部類 ,並使用術語嵌套類來包含靜態和非靜態版本。 private
。 通過這種方式,內部類只能將自身暴露給它的外部類。 就個人而言,我傾向於實現內部類,只要這樣做允許內部類的構造函數是private
,即當一個類只能從另一個(外部)類實例化時。 任何額外的封裝,例如使整個內部類都是private
,是可取的; 但public
內部課程是完全可以接受的。 Java中有很多例子,比如AbstractMap.SimpleEntry
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.