Javaのローカルクラス

投稿者: | 2011年3月30日

ある部分で一時的にしか使わないクラスは、できるならばなるべく狭いスコープ内にとどめておきたいと思う。
こうした時、無名クラスを使うのは有効だが、Javaの無名クラスは、あるクラスを継承して作るか、
あるクラスを実装して作るかのどちらかで、継承と実装を同時に行うことは出来ないらしい。

何とか件のようなことができそうな書き方を探してみたところ、ローカルクラスというものを使えばよさそうだということが分かった。
C#ではこういう書き方は出来ないので面白い。(ちなみに、C++ではできた。)

サンプルプログラム
Java

public class LocalClassLesson {

   public static void main(String[] args) {

       class MyLocalClass{
           void doSomething(){
               System.out.println("This is MyLocalClass.");
           }
       }

       MyLocalClass mc = new MyLocalClass();
       mc.doSomething();
   }
}

C++

#include <iostream>

using namespace std;

int main(int argc, char* argv[]){

       class LocalClass{
       public:
               void doSomething(){
                       cout << "This is LocalClass." << endl;
               }
       };

       LocalClass lc;
       lc.doSomething();
}

@ITの記事に分かりやすい解説が載っている。
http://www.atmarkit.co.jp/fjava/rensai4/java5eclipse17/java5eclipse17_3.html

Wikipediaのこの記事も興味ぶかい。
http://ja.wikipedia.org/wiki/C_Sharp%E3%81%A8Java%E3%81%AE%E6%AF%94%E8%BC%83

Javaのローカルクラス」への1件のフィードバック

  1. ピンバック: 【Java】内部クラス(inner class)についてのメモ – ザワプロ!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です