內部類的兩個小問題

2022-03-02 14:32:56 字數 650 閱讀 4726

非static的內部類,在外部類載入的時候,並不會載入它,所以它裡面不能有靜態變數或者靜態方法。

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

2、要使用某個類的static屬性或者方法,那麼這個類必須要載入到jvm中。

基於以上兩點,可以看出,如果乙個非static的內部類如果具有static的屬性或者方法,

那麼就會出現一種情況:內部類未載入,但是卻試圖在記憶體中建立static的屬性和方法,這當然是錯誤的。原因:類還不存在,但卻希望操作它的屬性和方法。

區域性內部類不能加任何訪問修飾符,因為它只對區域性塊有效。

1.區域性內部類只在方法體中有效,就想定義的區域性變數一樣,在定義的方法體外不能建立區域性內部類的物件

2.在方法內部定義類時,應注意以下問題:

3.方法定義區域性內部類同方法定義區域性變數一樣,不能使用private、protected、public等訪問修飾說明符修飾,

也不能使用static修飾,但可以使用final和 abstract修飾

4.方法中的內部類可以訪問外部類成員。對於方法的引數和區域性變數,必須有final修飾才可以訪問。

5.static方法中定義的內部類可以訪問外部類定義的static成員

內部類的兩個小問題

非static的內部類,在外部類載入的時候,並不會載入它,所以它裡面不能有靜態變數或者靜態方法。1 static型別的屬性和方法,在類載入的時候就會存在於記憶體中。2 要使用某個類的static屬性或者方法,那麼這個類必須要載入到jvm中。基於以上兩點,可以看出,如果乙個非static的內部類如果具...

兩個小問題

最近實驗室的工作上碰到的兩個小問題,記錄一下。1.yuv顏色空間的gmm 之前用過很多次的在rgb上的混合高斯模型,最近需要對乙個yuv序列使用gmm方法建背景。因為有現成的 所以第乙個出現在腦海中的想法就是用公式把yuv轉成rgb之後,完了再轉回yuv。後來再回頭一想,完全不必要如此,因為gmm完...

MySQL的兩個小問題

近期打算離職,所以開始投簡歷重新找 的工作,然後 資本打 過來 面試,提了兩個問題,全沒答上來,其實是太久沒用mysql了啊,還有我工作就是不斷去試出來的,反正整理一下啦。有兩張表 如上圖a表和b表這樣子,一共有15個同學,想得到學號為1 15的學生的平均分,如果該項沒有成績就為0,怎麼操作?面試卡...