靜態(tài)內(nèi)部類有什么用?

知乎昭言說

根據(jù)Oracle官方的說法:

Nested classes are divided into two categories: static and non-static. Nested classes that are declared static are called static nested classes. Non-static nested classes are called inner classes.

從字面上看,一個被稱為靜態(tài)嵌套類,一個被稱為內(nèi)部類。從字面的角度解釋是這樣的:什么是嵌套?嵌套就是我跟你沒關(guān)系,自己可以完全獨立存在,但是我就想借你的殼用一下,來隱藏一下我自己(真TM猥瑣)。什么是內(nèi)部?內(nèi)部就是我是你的一部分,我了解你,我知道你的全部,沒有你就沒有我。(所以內(nèi)部類對象是以外部類對象存在為前提的)至于具體的使用場景,我就不當翻譯工了,有興趣的直接去官網(wǎng)看吧。

知乎鐵心男說

靜態(tài)內(nèi)部類就是個獨立的類。之所以要弄這么個東西,只是起到一個注釋的效果,而且這個注釋可靜態(tài)檢查。比如有A,B兩個類,B有點特殊,雖然可以獨立存在,但只被A使用。這時候怎么辦?如果把B并入A里,復(fù)雜度提高,搞得A違反單一職責(zé)。如果B獨立,又可能被其他類(比如同一個包下的C)依賴,不符合設(shè)計的本意。所以不如將其變成A.B,等于添加個注釋,告訴其他類別使用B了,它只跟A玩。非靜態(tài)的才是真正的內(nèi)部類,對其外部類有個引用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,728評論 18 399
  • 小編費力收集:給你想要的面試集合 1.C++或Java中的異常處理機制的簡單原理和應(yīng)用。 當JAVA程序違反了JA...
    八爺君閱讀 5,216評論 1 114
  • { "Unterminated string literal.": "未終止的字符串文本。", "Identifi...
    栗子雨閱讀 8,076評論 0 3
  • "Unterminated string literal.": "未終止的字符串文本。", "Identifier...
    兩個心閱讀 8,558評論 0 4

友情鏈接更多精彩內(nèi)容