マンガで分かる 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]

クロクロ・ショップ
特殊な技術書多数あります
レトロ風RPG フルスクラッチ開発 全コード
レトロゲーム風RPGの全コードを掲載して解説した本
HTML5とJavaScriptで作る 落ち物パズルゲーム 全コード
『テトリス』や『ぷよぷよ』に類似した落ち物パズルゲームの全コードを掲載して解説した本
JavaScriptでリバーシゲームをつくろう
ライブラリを使わずに全コードを書いて、リバーシゲームを作るまでを徹底解説
ワールドマップ自動生成読本
二次元ゲームのワールドマップを自動生成するための本
レトロゲームファクトリー
過去のゲームを最新機に移植する会社のお仕事小説(新潮社)
顔貌売人 ハッカー探偵 鹿敷堂桂馬
プログラマーが探偵役のエンタメ・ミステリー第2弾 最先端の情報犯罪に安藤と鹿敷堂が挑みます(文藝春秋)
裏切りのプログラム ハッカー探偵 鹿敷堂桂馬
プログラマー鹿敷堂桂馬が、女性社長の安藤裕美と共に、IT業界で起きた事件に挑む。2016年の松本清張賞の最終候補作(文藝春秋)
×