優先考慮靜態成員類(22)

一、嵌套類是指被定義在另外一個類內部的類函數

  • 嵌套類存在應該僅僅是爲他的外圍類提供服務
  • 否則,他就不該該被嵌套

二、嵌套分四種狀況對象

  • 靜態成員類
  • 非靜態成員類
  • 匿名類
  • 局部類
  • 除了第一種,都是內部類

三、靜態成員類當成普通類繼承

  • 碰聲明在內部的普通類
  • 能夠訪問外圍類全部成員(包括私有成員)
  • 靜態成員類是外圍類的一個靜態成員,遵照一樣的訪問規則(和其餘靜態成員同樣)
  • 經常使用來做爲共有的輔助類
  • 能夠在外圍類實例以外獨立存在

四、非靜態成員類作用域

  • 非靜態成員類的每一個實例,都隱含着與外圍類的一個外圍實例相關聯
  • 建立時確認關聯關係、一旦關聯不能修改
  • 能夠調用外圍實例的方法
  • 沒有外圍實例的狀況下,建立非靜態實例是不可能的
  • 經常使用來定義一個Adapter 

五、若是聲明成員類不要求訪問外圍實例,那就聲明爲靜態成員類變量

  • 若是聲明爲非靜態,每一個實例都保留指向外圍實例的引用,影響外圍實例垃圾回收

六、私有靜態成員類經常使用來表明外圍類對象的組件垃圾回收

七、匿名類引用

  • 沒有名字,不是外圍類的一個成員
  • 使用的同時被聲明和被實例化
  • 能夠出如今任何容許出現表達式的地方
  • 客戶端沒法調用它的任何成員,除非是超類繼承的
  • 儘量簡短,不然影響程序可讀性
  • 常見用法:動態建立函數對象
  • 另外一種常見用法:建立過程對象(好比Thread或TimerTask)
  • 還有:靜態工廠方法內部

八、局部類是用的最少的程序

  • 任何能夠聲明局部變量的地方均可以聲明局部類
  • 局部類遵照一樣的做用域規則
  • 匿名類在不止一個地方用,作成局部類
相關文章
相關標籤/搜索