第四章 內部類和單例模式

2021-10-01 07:32:56 字數 651 閱讀 7195

一、內部類

定義:乙個類的類體內再定義乙個類,該情況下外面的類稱為「外部類」,裡面的類稱為「內部類」。

內部類分為:①成員內部類 ②區域性內部類

③靜態內部類 ④匿名內部類

所有類可以方便訪問外部類的私有成員屬性。

① 成員內部類:在「外部類」內部定義乙個類。

② 區域性內部類:在方法中定義的內部類稱為區域性內部類

注意:不能用public或private訪問修飾符進行宣告;

作用域限定在宣告該類的方法塊中;

可以對外界完全隱藏起來。

實際開發中,很少使用區域性內部類,因為它作用域很小,只能在方法中使用。

③ 靜態內部類:使用static修飾乙個內部類,稱為靜態內部類。

④ 匿名內部類:無名字的內部類,適合只需要使用一次的類。

注意:1)不能有構造方法;

2)不能定義任何靜態成員、方法和類,但非靜態方法屬性內部類可以定義;

3)只能建立一次;

4)一定跟在new後面,建立共實現的介面或父類的物件。

二、單例模式

實現方式:①構造方法私有

②用乙個私有的靜態變數引用例項

③提供乙個公有的靜態方法獲取例項

單例模式和內部類

單例模式的特點 類中定義乙個無參的構造方法,並且宣告為私有 在類的內部建立該類的乙個例項物件,使用私有的靜態變數引用該例項物件 定義靜態方法返回該例項物件。靜態內部類方法內部類 靜態內部類中可以定義靜態成員和非靜態成員,如果要訪問非靜態成員,必須通過靜態內部類的物件或者物件的引用變數。在靜態方法中只...

js 設計模式 第四章

繼承 why?多個類公用的功能,如果重複拷貝,一方面,工作量大,另一方面,如果公用功能需要修改,則需要修改所有類中的這個功能,重複工作量大。為了減少複製以及帶來的不利於修改的問題,我們需要繼承 how?三種方法 classical inheritance prototypal inheritance...

單例模式 內部類

為什麼靜態內部類的單例模式是最推薦的?如何在反射的情況下保證單例?如何在反序列化中保證單例?針對上述三個問題有了這篇文章,以一種循序漸進的方式,引出最後一種單例設計模式,希望對大家能夠有所幫助。單例設計模式這種其實大家都懂,不多說,上 package singleton public class s...