マンガで分かる Java入門講座

第10章 クラスとオブジェクト3
10-5. メソッド内のクラス

「局所(ローカル)クラス」や「匿名クラス」といったメソッド内のクラスの作り方と、使い方を紹介します。

● 局所クラス(ローカルクラス)

 「局所クラス(ローカルクラス)」は、ローカル変数のように、メソッド内でクラス宣言を行い、そのメソッド内でクラスを使う方法です。

ソースコード)局所クラス(ローカルクラス)
public void method() {
    // 「局所クラス(ローカルクラス)」の宣言
    class In {
    }

    // オブジェクトを作成
    In in = new In();
}

● 匿名クラス(無名内部クラス)

 「匿名クラス(無名内部クラス)」は、局所クラスの一種です。

 メソッド内でオブジェクトの作成をしつつ、その後に「{ }」を加えることで、そのクラスのサブクラスを一時的に作り、メソッドのオーバーライドなどを行います。

ソースコード)匿名クラス(無名内部クラス)
public void method() {
    // 「匿名クラス(無名内部クラス)」からオブジェクトを作成
    MyClass mc = new MyClass() {
        // メソッドをオーバーライド
        @Override
        public void method() {
            System.out.println("MethodAnonymous");
        }
    };
}

図)匿名クラス(無名内部クラス)
         ┏匿名クラス━━━━━━━━━┓
         ┃┏MyClass ━┓       ┃
MyClass mc = new ┃┃     ┃       ┃@Override
         ┃┃     ┠─×method() ┠─○method()
         ┃┗━━━━━┛       ┃
         ┗━━━━━━━━━━━━━━┛

 この匿名クラスは、インターフェースの実装などでもよく使われます。

ソースコード)インターフェースの実装
JButton btn = new JButton();
btn.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        // クリック時の処理
    }
});

この講座のマンガ部分は「箱人形マンガ(Box Comic) 」で作成しています。
作成:2013/06/05  更新:2013/06/05  [Permalink]