首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 程式設計思想筆記:內部類別完整分類與應用場景解析

     編輯:Java 相關知識

定義與外部類連結

內部類定義在另一個類內部。建立內部類實例時,會隱含捕獲外部類實例引用,因此能無條件存取外部類所有成員 (含 private)。

.this 與 .new 關鍵字

  • Outer.this:在內部類中獲取外部類實例引用。
  • outerObj.new Inner():在外部類實例上直接建立內部類實例 (而非透過外部類方法)。
  • 必須先有外部類實例才能建立內部類實例 (靜態內部類除外)。

內部類與向上轉型

內部類實作介面並向上轉型為介面類型,外部類可隱藏具體實現細節,實現「多重繼承」效果 (Java 單繼承限制下)。

方法區域內部類

  • 定義在方法內,僅在方法作用域內可見。
  • 不可加存取修飾符、不可 static。
  • 編譯期即生成 class 檔,非運行時動態生成。

匿名內部類

  • 無名稱,隱含實作介面/繼承類並建立實例。
  • 參數必須為 final 或效果上 final (Java 8+)。
  • 無建構子,可用實例初始化塊 { ... } 模擬建構邏輯。

靜態內部類 (巢狀類)

  • static 修飾,不依賴外部類實例。
  • 不可存取外部類非 static 成員。
  • 可包含 static 方法、欄位、巢狀類。
  • 建立語法:new Outer.Nested()。

.class 檔案命名

格式:Outer$Inner.class。方法區域類編譯時同樣生成 class 檔,證明非運行時動態生成。

為何使用內部類?

  1. 提供進入外部類的「窗口」,實現更好的封裝。
  2. 每個內部類可獨立實作一個介面,解決多重繼承問題 (最核心原因)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved