徹底攻略Java SE 11 Gold問題集(黒本)を読んで最初にぶち当たる壁「内部クラス」ついて、4つの記事に分けてまとめました。
僕のようなJava初心者や、JavaGoldの資格取得に向けて、勉強をしている方にこの記事がお役に立てれば幸いです。
#はじめに
内部クラスには4種類あります。
今回はその中の匿名クラスについて解説していきます。
・インナークラス
・staticインナークラス
・ローカルクラス
・匿名クラス👈
##匿名インナークラスとは?
一言で表すと、インターフェースを実現したクラスなどそのクラスとして名前のないクラスを宣言したものです。
そのクラスがどのようなフィールドやメソッドを持つべきかクラスの実装内容を定義できます。
要するにインスタンス化するインターフェイスに実装がなくても、インスタンス化する時に実装できてしまう
匿名クラスは名前が無いためコンストラクターは定義できません。
#どのように使うの?
###定義方法
下記のコードのようにコンストラクタを呼び出しの後ろに中カッコで作ったものを定義するだけです。
public interface Human {
}
public class Main{
public static void main (String[] args){
var human = new Human(){
public void run(){
System.out.println("走れ!!");
}
};
human.run();
}
}
結果
走れ!!
JavaSE10以降からはvarを使った変数宣言が可能です。
#まとめ
・インターフェースを実現したクラスなどそのクラスとして名前のないクラスを宣言したもの
##参考文献
・徹底攻略Java SE 11 Gold問題集
・Javaの匿名クラス(無名クラス)の使い方【初心者向け】