無名クラスとは

javaやC#では、インスタンス変数をnewする際に、後ろに中かっこを記述し定義を行うことができます。
ここで定義されるものは「無名クラス(匿名クラス)」と呼ばれ、クラス名を新たに定義することなく、インスタンス変数のクラス・インターフェースを継承・実装したクラスを定義することができます。
(ちなみに、「ラムダ式」と呼ばれる文法は「無名クラス」を応用したものになります)

以下、javaの例です。

【サンプルコード】

・AnonymousClass.java

・AnonymousInterface.java

・AnonymousMain.java

【実行結果】


いかがでしたでしょうか。

無名クラスは、使い捨てのクラスを作りたい時に便利です。
また、前述のラムダ式等を理解する上でも、無名クラスを理解する必要があります。

javaの入門書には出てくることが少ない文法だと思いますが、javaに慣れたらこの文法も早い内に理解することをお勧めします。

“無名クラスとは” への2件の返信

  1. 超初心者です、
    無名クラスについては記述がいっぱいあるのですが
    ではこれを通常のクラスで書いたらどうなるかという分かりやすい比較のサイトがなかなか見つかりません。

    1. 確かに、通常のクラスで書いた場合との比較がないとわかりにくいですよね…。
      というわけで、通常のクラスと無名クラス(匿名クラス)を比べた記事を新たに書きました。
      書き方だけではなく、無名クラスを使うと何が嬉しいのかも書いています。
      https://cyzennt.co.jp/blog/2021/05/24/java%ef%bc%9a%e9%80%9a%e5%b8%b8%e3%81%ae%e3%82%af%e3%83%a9%e3%82%b9%e3%81%a8%e5%8c%bf%e5%90%8d%e3%82%af%e3%83%a9%e3%82%b9%ef%bc%88%e7%84%a1%e5%90%8d%e3%82%af%e3%83%a9%e3%82%b9%ef%bc%89%e3%81%ae/

      参考になれば幸いです!

コメントを残す

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

CAPTCHA