非靜態內部類為什麼不能有靜態成員變數和靜態方法。

2021-10-03 12:58:06 字數 264 閱讀 9563

首先要明白以下三點:

1、static型別的屬性和方法,在類載入的時候就會存在於記憶體中。

2、要想使用某個類的static屬性和方法,那麼這個類必須要載入到虛擬機器- 中。

3、非靜態內部類並不隨外部類一起載入,只有在例項化外部類之後才會載入。

現在考慮這個情況:在外部類並沒有例項化,內部類還沒有載入,這時候如果呼叫內部類的靜態成員或方法,內部類還沒有載入,卻試圖在記憶體中建立該內部類的靜態成員,這明顯是矛盾的。所以非靜態內部類不能有靜態成員變數或靜態方法。

靜態內部類和非靜態內部類區別

靜態內部類可以建立靜態的成員,而非靜態的內部類不可以,原因 內部類相當於外部類的乙個屬性,非靜態內部類中如果可以使用靜態成員,但是非靜態內部類是相當於非靜態成員,是在類例項化的時候才可以使用的,所以在非靜態類中定義靜態變數有一點多餘,所以不可以這樣使用。但是在非靜態內部類中可以定義static fi...

靜態內部類和非靜態內部類區別

靜態內部類可以建立靜態的成員,而非靜態的內部類不可以,原因 內部類相當於外部類的乙個屬性,非靜態內部類中如果可以使用靜態成員,但是非靜態內部類是相當於非靜態成員,是在類例項化的時候才可以使用的,所以在非靜態類中定義靜態變數有一點多餘,所以不可以這樣使用。但是在非靜態內部類中可以定義static fi...

靜態屬性 15 內部類 非靜態內部類

非靜態內部類在內部類中有使用,但不是很頻繁的使用 非靜態內部類即 在乙個類中還有乙個類 非靜態內部類 外部類裡使用非靜態內部類和平時使用其他類沒什麼不同 1.非靜態內部類物件必須寄存在乙個外部類物件裡。因此,如果有乙個非靜態內部類 物件那麼一定存在對應的外部類物件。非靜態內部類物件單獨屬於外部類的某...