📑

【Java】匿名(無名)クラス

に公開

匿名(無名)クラスとは

  • 名前をつけずにその場で定義して使うクラス
  • 1度しか使わないクラスに適している
  • 主に「クラスの継承」や「インターフェースの実装」をするために使われる

なぜ匿名クラスを使うの?

  • 1度しか使わないクラスのために、わざわざファイルを作らなくてもよい
  • インスタンスを作ると同時に、その場でクラスの中身を定義することが出来る

実際のコード例

クラスやインターフェースなどファイルを分けて作成する場合

  • ファイルを分けて作成する場合、3つのファイルが必要
  • 記述する文字数も多い
package nonameTest;

public interface Greeting {
	void sayHello();
}
package nonameTest;

public class EnglishGreeting implements Greeting {
	@Override
	public void sayHello() {
		System.out.println("Hello!");
	}
}
package nonameTest;

public class Main {
	public static void main(String[] args) {
		Greeting greeting = new EnglishGreeting();
		greeting.sayHello(); // 出力: Hello!
	}
}

匿名クラスを使用する場合

  • クラスを別途作成せずにその場で定義することが出来る
  • 記述する文字数が少ない
  • newを使用してその場で定義・インスタンス化を行う
new クラス名またはインターフェース名() {
    // メソッドのオーバーライドや独自のメソッドを定義
};
package nonameTest;

public class Main2 {
	public static void main(String[] args) {
		Greeting greeting = new Greeting() {
			@Override
			public void sayHello() {
				System.out.println("Hello!");
			}
		};

		greeting.sayHello(); // 出力: Hello!
	}
}

https://zenn.dev/codek2/articles/7fbfa22ba62e69

Udemyで講座を公開中!
https://zenn.dev/codek2/articles/e9e44f3e0023fb

X(旧Twitter)
https://twitter.com/kunchan2_

Zenn 本
https://zenn.dev/codek2?tab=books

Youtube
https://www.youtube.com/@codek2_studio

Discussion