English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、サンプルを用いてJavaの匿名クラスを学びます。
Javaでは、クラスがネストされたクラスを含むことができます。名前を提供しない場合にネストされたクラスを作成できます。
名前のないネストされたクラスは匿名クラスと呼ばれます。
匿名クラスを定義するには、別のクラス内で定義する必要があります。したがって、これは匿名内部クラスとも呼ばれます。その構文は次の通りです:
class outerClass { //匿名クラスを定義 object1 = new Type(parameterList) { //匿名クラスの主体 }; };
匿名クラスは通常、サブクラスを継承したりインターフェースを実装します。
ここでは、タイプ可以是
匿名クラスが継承するスーパークラス
匿名クラスが実装するインターフェース
上記のコードは実行時に匿名クラスのオブジェクトobjectを作成します。1。
注意:匿名クラスは式内で定義されます。したがって、匿名クラスの末尾には分号を使用して式の終わりを示します。
class Polygon { public void display() { System.out.println("Polygonクラス内"); }; }; class AnonymousDemo { public void createClass() { //匿名クラスを生成し、クラスPolygonを継承 Polygon p1 = new Polygon() { public void display() { System.out.println("匿名クラスの内部。"); }; }; p1.display(); }; }; class Main { public static void main(String[] args) { AnonymousDemo an = new AnonymousDemo(); an.createClass(); }; };
出力結果
匿名クラスの内部
上記の例では、クラスPolygonが作成されました。このクラスにはdisplay()メソッドが1つしかありません。
その後、匿名クラスが作成されました。このクラスはPolygonを継承し、display()メソッドをオーバーライドしています。
このプログラムを実行するとき、匿名クラスのオブジェクトpが作成されます。1。その後、そのオブジェクトが匿名クラスのdisplay()メソッドを呼び出します。
interface Polygon { public void display(); }; class AnonymousDemo { public void createClass() { //インターフェースを実装する匿名クラス Polygon p1 = new Polygon() { public void display() { System.out.println("匿名クラスの内部。"); }; }; p1.display(); }; }; class Main { public static void main(String[] args) { AnonymousDemo an = new AnonymousDemo(); an.createClass(); }; };
出力結果
匿名クラスの内部
上記の例では、Polygonインターフェースを実装する匿名クラスを作成しました。
匿名クラスでは、必要に応じてオブジェクトを作成します。つまり、特定のタスクを実行するためにオブジェクトを作成します。例えば、
Object = new Example() { public void display() { System.out.println("匿名クラスがdisplay()メソッドをオーバーライドします。"); }; };
ここでは、display()メソッドをオーバーライドする必要がある場合、匿名クラスのオブジェクトが動的に作成されます。
匿名クラスもコードを簡潔にするのに役立ちます。