內部類(包括靜態內部類和普通內部類區別)


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

 

內部類:
1. 靜態內部類:
    1. 靜態內部類本身可以訪問外部的靜態資源,包括靜態私有資源。但是不能訪問非靜態資源,可以不依賴外部類實例而實例化。
2. 成員內部類:
    1. 成員內部類本身可以訪問外部的所有資源,但是自身不能定義靜態資源,因為其實例化本身就還依賴着外部類。
 2.成員內部類訪問規則
      成員內部類不是靜態的:外部類名.內部類名 對象名 = new 外部類名().new 內部類名();
      成員內部類是靜態的:外部類名.內部類名 對象名 = new 外部類名.內部類名();  例如:  Line.Point p = (new Line()).getPoint();
3. 局部內部類:
    1. 局部內部類就像一個局部方法,不能被訪問修飾符修飾,也不能被static修飾。
    2. 局部內部類只能訪問所在代碼塊或者方法中被定義為final的局部變量。
4. 匿名內部類:
    1. 沒有類名的內部類,不能使用class,extends和implements,沒有構造方法。
    2. 多用於GUI中的事件處理。
    3. 不能定義靜態資源
    4. 只能創建一個匿名內部類實例。
    5. 一個匿名內部類一定是在new后面的,這個匿名類必須繼承一個父類或者實現一個接口。
    6. 匿名內部類是局部內部類的特殊形式,所以局部內部類的所有限制對匿名內部類也有效。



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM