Java語法學習筆記

嵌套類的學習

當static還有final還有內部類都攪和在一起就蒙了,所以學習之後分享一下自己的筆記。
看過一些大佬寫的筆記,感覺還是挺有用的,在此分享一下:

static:

  1. static:加載類的時候,會給static分配一個地址,可以通過類名直接訪問
  2. 非static 每創建一個實例就給他分配一次內存。

final:

  1. final可以修飾類,這樣的類不能被繼承。
  2. final可以修飾方法,可以繼承,但是這樣的方法不能被重寫。

嵌套類有兩種類型:靜態的和非靜態的,靜態的嵌套類是應用了static修飾符的嵌套類,因爲是靜態的,所以只能通過對象訪問包含類的非靜態成員。也就是說,嵌套類不能直接引用包含類的非靜態成員。因爲這條限制,所以很少使用靜態的嵌套類。

嵌套類最重要的類型是內部類,內部類是非靜態的嵌套類,可以訪問外部類的所有變量和方法,並且可以直接引用它們,引用方式與外部類的其他非靜態成員使用的方式相同。

內部類可以訪問外部類的所有成員,但是反過來不可以。內部類的成員只有在內部類的作用域內纔是已知的,並且外部類不能使用。內部類中的屬性和方法即使是外部類也不能直接訪問,相反內部類可以直接訪問外部類的屬性和方法,即使private。這是因爲在創建外部類時,內部類會自動捕獲一個外部類的引用,所以內部類可以訪問外部類元素。

匿名內部類:

  1. 匿名內部類是沒有訪問修飾符的。
  2. 匿名內部類必須繼承一個抽象類或者實現一個接口
  3. 匿名內部類中不能存在任何靜態成員或方法
  4. 匿名內部類是沒有構造方法的,因爲它沒有類名。

靜態內部類:

  1. 靜態內部類的創建不需要依靠外部類,可以直接創建
  2. 靜態內部類只能訪問外部類的靜態成員變量和方法,不能訪問外部類的非靜態成員變量和方法
  3. 非靜態內部類中可以調用外部類的任何成員,不管是靜態的還是非靜態的
  4. 在這裏插入圖片描述
發佈了8 篇原創文章 · 獲贊 0 · 訪問量 186
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章