【8/27まで】Udemyの人気コースが今なら1,200円から!!

【Java入門】匿名クラス(AnonymousClass)の書き方

【Java入門】匿名クラス(AnonymousClass)

匿名クラス(AnonymousClass)とは

匿名クラス(AnonymousClass)とはクラス名を持たないクラスのことを指し、
newキーワードともに「クラスの宣言」と「インスタンスの生成」を同時に行うことが出来ます。
一般的にはインターフェースの実装をその場で行うために使用されます。
クラスを1個所でしか使わないのであれば、名前のあるクラスを用意するよりも匿名クラスで記述した方が簡単です。

構文

Java

new InterFaceName(){
    //メソッド実装
}

インターフェースを匿名クラスとして実装した例

以下のインターフェースを例にします。

IF.java

@FunctionalInterface
public interface IF {
    public void method1(String str);
}

上記のインターフェースを匿名クラスとして実装した例

Main.java

public class Main {
    public static void main(String args[]){
        IF IF = new IF(){
            public void method1(String str){
                System.out.println(str);
            }
        };
        IF.method1("test");  //test
    }
}

上記を簡略化した実装例

Main.java

public class Main {
    public static void main(String args[]){
        new IF(){
            public void method1(String str){
                System.out.println(str);
            }
        }.method1("test");
    }
}

匿名クラスをメソッドの引数に渡す

この例では、m.callIFの引数に匿名クラスをセットしています。

Main.java

public class Main {
    public static void main(String args[]){
        Main m = new Main();
        m.callIF(new IF(){
            public void method1(String str){
                System.out.println(str);
            }
        });
    }
    public void callIF(IF IF){
        System.out.println("1");
        IF.method1("test");
        System.out.println("3");
    }
}

コメントを残す

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