內聯類(inner class),靜態內嵌類(static nested class)
主要區別:內聯類可以訪問定義在外圍類(enclosing class)中的例項變數,而靜態內嵌類不可以。
內聯類式完全被封裝在外圍類中的。因為內聯類可以引用外圍類的例項變數,讓其他**有能力去建立內聯類的例項式沒有意義的。靜態內嵌類可以被外部**所使用,只要限定符不是private的,如map.entry。
靜態內嵌類存在主要原因是:讓其他類可以使用它,另外允許將其序列化。你不能序列化內聯類物件,因為他們能夠訪問外圍類的例項變數。要讓序列化工作,序列化機制必須處理外圍類的成員變數。
靜態類和靜態類成員(C )
靜態類與非靜態類基本相同,但存在乙個區別 靜態類不能例項化。也就是說,不能使用 new 關鍵字建立靜態類型別的變數。因為沒有例項變數,所以要使用類名本身訪問靜態類的成員。例如,如果名為 utilityclass 的靜態類有乙個名為 methoda 的公共方法,則按下面的示例所示呼叫該方法 c uti...
靜態類和靜態成員小結
靜態類的總結 1.靜態類和非靜態類十分類似,但是有一點,靜態類是不能被例項化化的,因為靜態類中就沒有例項化的變數。也就是說,對於靜態類不能使用new關鍵字。要想訪問靜態類中的成員,必須用類名來索引。2.那麼什麼時候使用靜態模擬較合適呢?當乙個類的方法只會處理到使用者輸入的變數,而不會涉及該類自身的字...
靜態建構函式和靜態類
靜態建構函式的幾點注意 一.乙個類只能定義乙個靜態建構函式。換句話說,靜態建構函式不能被過載。二.靜態建構函式不允許訪問修飾符並且不能接受任何引數。三.無論建立了多少型別的物件,靜態建構函式只執行一次。四.執行庫建立類例項或呼叫者首次訪問靜態成員之前,執行庫會呼叫靜態建構函式。五.靜態建構函式的執行...