一、嵌套類是指被定義在另外一個類內部的類函數
- 嵌套類存在應該僅僅是爲他的外圍類提供服務
- 否則,他就不該該被嵌套
二、嵌套分四種狀況對象
- 靜態成員類
- 非靜態成員類
- 匿名類
- 局部類
- 除了第一種,都是內部類
三、靜態成員類當成普通類繼承
- 碰聲明在內部的普通類
- 能夠訪問外圍類全部成員(包括私有成員)
- 靜態成員類是外圍類的一個靜態成員,遵照一樣的訪問規則(和其餘靜態成員同樣)
- 經常使用來做爲共有的輔助類
- 能夠在外圍類實例以外獨立存在
四、非靜態成員類作用域
- 非靜態成員類的每一個實例,都隱含着與外圍類的一個外圍實例相關聯
- 建立時確認關聯關係、一旦關聯不能修改
- 能夠調用外圍實例的方法
- 沒有外圍實例的狀況下,建立非靜態實例是不可能的
- 經常使用來定義一個Adapter
五、若是聲明成員類不要求訪問外圍實例,那就聲明爲靜態成員類變量
- 若是聲明爲非靜態,每一個實例都保留指向外圍實例的引用,影響外圍實例垃圾回收
六、私有靜態成員類經常使用來表明外圍類對象的組件垃圾回收
七、匿名類引用
- 沒有名字,不是外圍類的一個成員
- 使用的同時被聲明和被實例化
- 能夠出如今任何容許出現表達式的地方
- 客戶端沒法調用它的任何成員,除非是超類繼承的
- 儘量簡短,不然影響程序可讀性
- 常見用法:動態建立函數對象
- 另外一種常見用法:建立過程對象(好比Thread或TimerTask)
- 還有:靜態工廠方法內部
八、局部類是用的最少的程序
- 任何能夠聲明局部變量的地方均可以聲明局部類
- 局部類遵照一樣的做用域規則
- 匿名類在不止一個地方用,作成局部類