Java匿名クラス
Java 匿名クラス
このチュートリアルでは、例を使って Java の無名クラスについて学びます。
Java では、ネストされたクラスと呼ばれる別のクラスをクラスに含めることができます。名前を付けずにネストされたクラスを作成することは可能です。
名前のないネストされたクラスは、匿名クラスと呼ばれます。
匿名クラスは、別のクラス内で定義する必要があります。したがって、匿名の内部クラスとしても知られています。その構文は次のとおりです:
class outerClass {
// defining anonymous class
object1 = new Type(parameterList) {
// body of the anonymous class
};
}
匿名クラスは通常、サブクラスを拡張するか、インターフェースを実装します。
ここに タイプ できる
<オール>
上記のコードはオブジェクト object1
を作成します 、実行時の匿名クラス。
注: 匿名クラスは、式の中で定義されます。したがって、式の終わりを示すために、無名クラスの末尾にセミコロンが使用されます。
例 1:クラスを拡張する匿名クラス
class Polygon {
public void display() {
System.out.println("Inside the Polygon class");
}
}
class AnonymousDemo {
public void createClass() {
// creation of anonymous class extending class Polygon
Polygon p1 = new Polygon() {
public void display() {
System.out.println("Inside an anonymous class.");
}
};
p1.display();
}
}
class Main {
public static void main(String[] args) {
AnonymousDemo an = new AnonymousDemo();
an.createClass();
}
}
出力
Inside an anonymous class.
上記の例では、クラス Polygon を作成しました。 .単一のメソッド display()
があります .
次に、クラス Polygon を拡張する匿名クラスを作成しました display()
をオーバーライドします メソッド。
プログラムを実行すると、オブジェクト p1 匿名クラスが作成されます。次に、オブジェクトは display()
を呼び出します 匿名クラスのメソッド。
例 2:インターフェースを実装する匿名クラス
interface Polygon {
public void display();
}
class AnonymousDemo {
public void createClass() {
// anonymous class implementing interface
Polygon p1 = new Polygon() {
public void display() {
System.out.println("Inside an anonymous class.");
}
};
p1.display();
}
}
class Main {
public static void main(String[] args) {
AnonymousDemo an = new AnonymousDemo();
an.createClass();
}
}
出力
Inside an anonymous class.
上記の例では、Polygon
を実装する匿名クラスを作成しました。
匿名クラスの利点
匿名クラスでは、オブジェクトは必要なときに作成されます。つまり、特定のタスクを実行するためにオブジェクトが作成されます。たとえば、
Object = new Example() {
public void display() {
System.out.println("Anonymous class overrides the method display().");
}
};
ここでは、display()
をオーバーライドする必要があるときに、匿名クラスのオブジェクトが動的に作成されます。 メソッド。
匿名クラスは、コードを簡潔にするのにも役立ちます。
Java