Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaの匿名内部クラスでインターフェースを実装する方法をわかりやすく解説

匿名内部クラス(Anonymous Inner Class)とは、クラス名を持たないクラスのことであり、インスタンス化するその場で直接定義できるのが特徴です。インターフェースの実装を一時的に行いたい場合や、コードを簡潔にまとめたい場合に非常に便利な手法です。

匿名内部クラスの基本

通常、インターフェースを実装するには、別途クラスを定義して implements キーワードを使用します。しかし匿名内部クラスを使えば、new インターフェース名() { ... } の形式で、インスタンス生成と同時にメソッドの実装を記述できます。

実装例

次のプログラムでは、TutorialsPoint インターフェースの toString() メソッドを匿名内部クラスで実装し、その戻り値を出力しています。

interface TutorialsPoint{
   public String toString();
}
public class Main implements TutorialsPoint {
   public static void main(String[] args) {
      System.out.print(new TutorialsPoint() {
         public String toString() {
            return "Welcome to Tutorials Point";
         }
      });
   }
}

実行結果:

Welcome to Tutorials Point

コードのポイント

  • new TutorialsPoint() { ... } の部分が匿名内部クラスです。ここでインターフェースの抽象メソッドをその場で実装しています。
  • toString() メソッドはオブジェクトを文字列として表現するために呼び出されるため、System.out.print() に渡すだけで自動的に実行されます。
  • このように、一度きりの簡単な実装を行う場合に、匿名内部クラスはコードを簡潔に保つのに役立ちます。
  1. JavaのGregorianCalendarクラスで日付を出力する方法

    ```html GregorianCalendarクラスとはJavaのGregorianCalendarクラスは、標準的な暦体系をサポートするjava.utilパッケージのカレンダークラスで、ユリウス暦とグレゴリオ暦の両方に対応しています。GregorianCalendarのオブジェクトは、複数用意されたコンストラクタのいずれか、またはgetInstance()メソッドを使って生成できます。以下では、このクラスを使って日付を出力するさまざまな方法を具体例とともに解説します。例1:年・月・日を指定してインスタンスを生成する次の例では、コンストラクタに年・月・日の値を引数として渡し、Gregori

  2. Java 9でJavaFXを使ってJShellをプログラムから実装する方法

    JShellは、サンプル式を対話的に実行できるツールです。通常はコマンドラインから利用しますが、JavaFXアプリケーションの中でプログラム的にJShellを実装することも可能です。その場合、Javaプログラムに以下のパッケージをインポートする必要があります。import jdk.jshell.JShell; import jdk.jshell.SnippetEvent; import jdk.jshell.VarSnippet;これらのクラスの役割は次のとおりです。JShell:評価エンジンの本体。式や文を評価(eval)するためのAPIを提供します。SnippetEvent:評価結果として