#匿名クラスとは
-
内部クラスとも、無名クラスともいう。無名のとおり、名前の無いクラスです。 - 通常のクラスと異なり、コンストラクタと処理部分の記載を同時に行う。
#匿名クラスの実装サンプル
Sample1.java
// 匿名クラスで使われるインターフェース
interface I_Hello {
public void print();
}
// 呼ぶ側のクラス
public class Sample {
public static void main(String[] args) {
I_Hello p = new I_Hello() {
@Override
public void print() {
System.out.println("Hello World");
}
};
p.print();
}
}
- 匿名クラスの実行結果
Hello World
#匿名クラスを使わないで実装した場合のサンプル
Sample2.java
// インターフェース
interface I_Hello {
public void print();
}
class Hello implements I_Hello {
@Override public void print(){
System.out.println("Hello World");
}
}
// 呼ぶ側のクラス
public class Sample2 {
public static void main(String[] args) {
I_Hello p = new Hello();
p.print();
}
}
- 実行結果
Hello World
#匿名クラスを使う場合と使わない場合を比較して
- 上記、サンプルを見るように、匿名クラスを使わない場合、インターフェースを実体化するクラスHelloを用意しなくてはならないので、匿名クラスと比べて大掛かりとなってしまっています。
- 匿名クラスの場合はシンプルに記載できます。