首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 內部類四大使用場景:多實現、封裝、事件驅動、線程隔離

     編輯:程式設計綜合問答

內部類(非靜態嵌套類)持有外部類引用,可訪問外部私有成員。四大核心價值:

1. 實現多介面隔離

外部類已實現 InterfaceA,內部類可獨立實現 InterfaceB,互不干擾。彌補 Java 無多重繼承的缺憾。

2. 邏輯封裝與隱藏

將「僅服務於外部類」的輔助類隱藏在內部,包級別不可见,降低耦合。如 HashMap.Node、ArrayList.Itr。

3. 事件驅動回調

button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        outerMethod(); // 直接訪問外部方法/字段
    }
});

匿名內部類簡化監聽器註冊,無需額外字段傳遞上下文。

4. 線程封裝

new Thread(new Runnable() {
    public void run() {
        // 直接用外部 final/效果上 final 變量
    }
}).start();

靜態內部類區別

  • 無外部引用,可獨立實例化
  • 常用於單例 Holder、Builder、數據結構節點

設計原則

「高內聚、低耦合」:若類邏輯緊密依賴外部類上下文 → 非靜態內部類;否則優先考慮頂層類或靜態內部類。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved