無名クラスを定義する
無名クラスを定義する- 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 } }
関連ページ
ネストクラス