package/protected/private/public 修飾。Outer.this.new Inner() (外部類實例上下文中可省略 Outer.this)。public class LinkedList {
private Node head; // 只在 LinkedList 內部用,適合私有內部類
private static class Node { Object val; Node next; }
// ...
}
優點:封裝性強、同一文件易維護、避免產生大量微小頂層類檔案。
new Interface/Class() { ... },編譯期生成類,運行期建立實例。// 1. 視窗關閉適配器
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { onClose(); } // 可訪問私有 onClose()
});
// 2. 按鈕動作監聽器
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { frame.dispose(); } // 訪問 final 區域變數 frame
});
內部類提供「邏輯內聚、物理封裝」的中層組織單元;匿名類消除「為了一個介面寫一個類」的樣板碼。善用它們,代碼更內聚、文件更少、意圖更清晰。