匿名クラスとは?
状態:-
閲覧数:1,512
投稿日:2013-04-23
更新日:2013-05-11
・内部クラスで、クラス名がないもの
・コードの中で「クラス設計」と「インスタンス化」を同時に行う
※無名クラス、匿名内部クラス、無名内部クラスとも呼ばれる
用途
・「抽象クラス」や「インタフェース」を実装する際に利用
・「他のクラスのメソッドをオーバーライドしたクラス」を臨時作成する際に利用
書式
・コードの中で「クラス設計」と「インスタンス化」を同時に行う
※無名クラス、匿名内部クラス、無名内部クラスとも呼ばれる
用途
・「抽象クラス」や「インタフェース」を実装する際に利用
・「他のクラスのメソッドをオーバーライドしたクラス」を臨時作成する際に利用
書式
new 抽象クラス型( ) { 無名クラス };
new インタフェース型( ) { 無名クラス };
※クラス名を指定せずに実装したいインターフェイスやクラスをnewしながら、そこに実装が必要なコードを記述new インタフェース型( ) { 無名クラス };
特徴
特徴
・クラスの宣言だけでなく、オブジェクトの生成までも実施
・明示的なコンストラクタを持てない
・継承するクラスを作成できない
・明示的なextends節やimplements節を持つことができない
メリット
・新たなクラスを宣言することなく、メソッド内で抽象クラス、インタフェースを実装
デメリット
・本来クラスの宣言が行われない箇所で宣言が行われているためおり、コード可読性が下がる
・そのため、無名クラスの利用は実装が非常にシンプルなものに止めるべきとされる