無名クラスを定義する
無名クラスを定義する- new clazz() { definition }
- new interfaze() { definition }
- clazz:スーパークラスの名前
- interfaze:インターフェイスの名前
- definition:無名クラスの定義
無名クラス(匿名クラス)を利用することで、クラスやインターフェイスの継承/実装からインスタンス化までをまとめて1文で表現できます。使い捨てのクラスを用意する際などによく利用されます(イベントリスナーの定義などでよく見かけるかもしれません)。
たとえば以下はIPrintableインターフェイスの実装クラスを無名クラスで表したものです。
IPrintable.java
package com.example.mynavi.object;
public interface IPrintable {
void print();
}
AnonymousSample.java
package com.example.mynavi.object;
public class AnonymousSample {
public static void main(String[] args) {
IPrintable p = new IPrintable() {
@Override
public void print() {
System.out.println("TEST");
}
};
p.print(); // 結果:TEST
}
}
関連ページ
ネストクラス






