常規內部類 區域性內部類 匿名內部類和靜態巢狀類小結

2021-07-22 16:57:01 字數 796 閱讀 7111

1.常規內部類

內部類就像乙個例項成員一樣存在於外部類中。

內部類可以訪問外部類的所有成員就想訪問自己的成員一樣沒有限制。

內部類中的this指的是內部類的例項物件本身,如果要用外部類的例項物件就可以用類名.this的方式獲得。

內部類物件中不能宣告靜態成員,原因很簡單,內部類的例項物件是外部類例項物件的乙個成員。(繼承的類或實現的介面可以有靜態成員)

在外部類的內部,可以用 inner inner = new inner(); 方法直接建立

2.區域性內部類

區域性內部類的地位和方法內的區域性變數的位置類似,因此不能修飾區域性變數的修飾符也不能修飾區域性內部類,譬如public、private、protected、static、transient等

區域性內部類只能在宣告的方法內是可見的,因此定義區域性內部類之後,想用的話就要在方法內直接例項化,記住這裡順序不能反了,一定是要先宣告後使用,否則編譯器會說找不到。

區域性內部類不能訪問定義它的方法內的區域性變數,除非這個變數被定義為final 。

區域性內部類的宣告不能有靜態變數(繼承的類或實現的介面可以有靜態成員)

出現在例項方法中可以訪問外部類的例項變數和例項方法。

出現在靜態方法中可以訪問外部內的靜態變數和方法。

3.匿名內部類

同區域性內部類。會生成 outerclass$1.class 的檔案

4.靜態內部類

靜態巢狀類和其他靜態方法一樣只能訪問其它靜態的成員,而不能訪問例項成員。因此靜態巢狀類和外部類之間的聯絡就很少了。

靜態內部類一樣可以有非靜態的變數和方法,不要被名字所誤導。

內部類,區域性類,匿名內部類

內部類,顧名思義就是類內部的類。public class student public void setcolor string color public intgetnum public void setnum int num 內部類自己的方法 public void write 區域性類,就是定...

內部類 成員內部類 區域性內部類 匿名內部類

public class 外部類 private int num 0 外部類如果要訪問內部類的成員,則需要通過內部類的物件訪問 使用方式 1.外部類使用內部類,主函式再使用外部類 2.通過new的方式 外部類.內部類 物件名 new 外部類 new 內部類 定義在方法內部的類,就是區域性內部類,只有...

成員內部類,區域性內部類,靜態內部類,匿名內部類

成員內部類 class demo1 innerclass a 內部類概述 b 內部類訪問特點 a 內部類可以直接訪問外部類的成員,包括私有。b 外部類要訪問內部類的成員,必須建立物件。外部類名.內部類名 物件名 外部類物件.內部類物件 class outer class demo2 innercla...