Item 22: Favor static member classes over nonstatic

《優(yōu)先考慮靜態(tài)成員類而不是非靜態(tài)成員類》次舌。

可能由于我經(jīng)驗(yàn)太少帅涂,這本書的題目總是要看半天。罐孝。

什么是靜態(tài)成員類(static member classes)?

嵌套類(nested class)有四種:

  • 靜態(tài)成員類(static member class)
  • 非靜態(tài)成員類(nonstatic member class)
  • 匿名類(anonymous class)
  • 局部類(local class)

除了第一種之外肥缔,其他三種都稱為內(nèi)部類(inner class)莲兢。

嵌套類(nested class)是指被定義在另一個(gè)類的內(nèi)部的類。嵌套類存在的目的應(yīng)該只是為他的外圍類(enclosing class)提供服務(wù)。如果嵌套類將來可能會(huì)用于其他的某個(gè)環(huán)境中改艇,他就應(yīng)該是頂層類(top-level class)收班。

也就是說,嵌套(nested)類 = 內(nèi)部(inner)類 + 靜態(tài)成員類谒兄。

其他重要的

A static member class is a static member of its enclosing class and obeys the same accessibility rules as other static members.

這句話就是說靜態(tài)成員類也可以看成「外圍類」(enclosing class)的一個(gè)普通成員摔桦。舉個(gè)例子
這樣一個(gè)非靜態(tài)成員類:

    public class A {
        public class B {
            
        }
    }

如果需要B的instance,不能這樣:

A.B ab = new A.B();

編譯器會(huì)提示:not an enclosing class承疲。
而要這樣:

A a = new A();
A.B ab = a.new B();

或者邻耕,把member class 用static修飾。

非靜態(tài)成員類最常見的用法是定義一個(gè)adapter燕鸽。

什么時(shí)候用靜態(tài)成員類

這看著挺晦澀的兄世。∶嘣郏看不懂碘饼。意思大概是如果成員類不需要訪問它enclosing class 的實(shí)例的時(shí)候就聲明成static member class吧。

總結(jié)

如果一個(gè)嵌套類需要在單個(gè)方法之外仍然是可見的悲伶,或者他太長了艾恼,不適合方法內(nèi)部,就應(yīng)該使用成員類麸锉。
如果成員類的每個(gè)實(shí)例都需要一個(gè)指向其外圍實(shí)例的引用钠绍,就要把成員類做成非靜態(tài)的;否則就做成靜態(tài)的花沉。假設(shè)這個(gè)嵌套類屬于一個(gè)方法的內(nèi)部柳爽,如果你需要在一個(gè)地方創(chuàng)建實(shí)例,并且已經(jīng)有了一個(gè)預(yù)置的類型可以說明這個(gè)類的特征碱屁,就把他做成匿名類磷脯;否則,就做成局部類娩脾。

總之赵誓,由于缺乏實(shí)際經(jīng)驗(yàn),看不太懂柿赊。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末俩功,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子碰声,更是在濱河造成了極大的恐慌诡蜓,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胰挑,死亡現(xiàn)場離奇詭異蔓罚,居然都是意外死亡椿肩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門脚粟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來覆旱,“玉大人,你說我怎么就攤上這事核无。” “怎么了藕坯?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵团南,是天一觀的道長。 經(jīng)常有香客問我炼彪,道長吐根,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任辐马,我火速辦了婚禮拷橘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喜爷。我一直安慰自己冗疮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布檩帐。 她就那樣靜靜地躺著术幔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪湃密。 梳的紋絲不亂的頭發(fā)上诅挑,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音泛源,去河邊找鬼拔妥。 笑死,一個(gè)胖子當(dāng)著我的面吹牛达箍,可吹牛的內(nèi)容都是我干的没龙。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼幻梯,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼兜畸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碘梢,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤咬摇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后煞躬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肛鹏,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逸邦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了在扰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缕减。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖芒珠,靈堂內(nèi)的尸體忽然破棺而出桥狡,到底是詐尸還是另有隱情,我是刑警寧澤皱卓,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布裹芝,位于F島的核電站,受9級(jí)特大地震影響娜汁,放射性物質(zhì)發(fā)生泄漏嫂易。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一掐禁、第九天 我趴在偏房一處隱蔽的房頂上張望怜械。 院中可真熱鬧,春花似錦傅事、人聲如沸缕允。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灼芭。三九已至,卻和暖如春般又,著一層夾襖步出監(jiān)牢的瞬間彼绷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來泰國打工茴迁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寄悯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓堕义,卻偏偏與公主長得像猜旬,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子倦卖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容