Javaで内部クラスを実装する方法は?



Javaの内部クラスとは、別のクラスのメンバーである1つのクラスを意味します。この記事は、このクラスを解明するのに役立ちます。

Javaの内部クラスとは、別のクラスのメンバーである1つのクラスを意味します。に 、内部クラスにはさまざまなタイプがあります。この記事は、これらすべてのクラスを解明するのに役立ちます。以下のポインタについて詳しく説明します。

それでは、このInner Class InJavaの記事から始めましょう。





Javaの内部クラス

ネストされたインナークラス

このクラスは、外部クラスのプライベートインスタンス値にアクセスできます。 Javaでは、あるクラスを別のクラス内に書き込むこともできます。内部に記述されたクラスはネストされたクラスと呼ばれ、内部クラスを保持するクラスは外部クラスと呼ばれます。



構文

クラスouterplace {クラスinnerplace {}}

以下の例では、内部クラスをプライベートにし、メソッドを使用してクラスにアクセスしています。



Pythonで文字列を逆にする方法
class Outer_place {int num private class Inner_place {public void print(){System.out.println( 'It is a inner class')}} void display_Inner(){Inner_place inner = new Inner_place()inner.print()}} public class My_class {public static void main(String args []){Outer_place external = new Outer_place()outer.display_Inner()}}

出力

出力-Javaの内部クラス-Edureka

ここで、外側の場所は外側のクラスであり、内側の場所は内側のクラスと呼ばれます。

このInnerClass In Javaの記事に進むと、

プライベートメンバーへのアクセス

内部クラスは、クラスのプライベートメンバーにアクセスするためにも使用されます。それらにアクセスするためのプライベートメンバーを持つクラスがあるとします。次に、クラス内に内部クラスを記述し、内部クラス内のメソッドからプライベートメンバーにアクセスします。

これが例です、

class Outer_place {private int num = 162 class Inner_place {public int getNum(){System.out.println( 'これは内部クラスのgetnumメソッドです:')return num}}} public class My_class {public static void main(String args []){Outer_placeouter = new Outer_place()Outer_place.Inner_place inner = external.new Inner_place()System.out.println(inner.getNum())}}

出力

先に進む、

ローカル内部クラスの方法

Javaでは、メソッド内にクラスを記述できます。これはローカルタイプと呼ばれます。すべてのローカル変数と同様に、内部クラスのスコープはメソッド内で制限されています。

次の例は、メソッドのローカル内部クラスがどのように実装されるかを示しています。

public class Outerplace {void my_Method(){int num = 45 class MethodInner_place {public void print(){System.out.println( 'メソッドの内部クラス' + num)}} MethodInner_place inner = new MethodInner_place()inner.print( )} public static void main(String args []){Outerplace external = new Outerplace()outer.my_Method()}}

出力

このInnerClass In Javaの記事に進むと、

匿名のインナークラス

クラス名なしで宣言された内部クラスは、匿名内部クラスと呼ばれます。匿名の内部クラスの場合、インスタンス化と宣言を同時に行います。

クラスまたはインターフェイスのメソッドをオーバーライドする場合は常に、このクラスを使用します。

構文

AnonymousInner obj1 = new AnonymousInner(){public void method(){}}

抽象クラスAnonymousInner {public abstract void mymethod()} public class Outer_class {public static void main(String args []){AnonymousInner inner = new AnonymousInner(){public void mymethod(){System.out.println( '匿名の例内部クラス ')}} inner.mymethod()}}

出力

このInnerClass In Javaの記事に進むと、

匿名の内部クラスの引数として

この場合、メソッドがインターフェイス、抽象クラス、または具象クラスのオブジェクトを受け入れる場合、インターフェイスを実装し、オブジェクトをメソッドに渡して、抽象クラスを拡張することができます。

構文

obj。メソッド(new class(){public void do {}})

//インターフェイスインターフェイスメッセージ{Stringgreet()} public class My_class {//インターフェイスメッセージのオブジェクトはこのメソッドによって受け入れられますpublicvoid displayMessage(Message m){System.out.println(m.greet()+ '、の例匿名内部クラスを引数として ')} public static void main(String args []){//クラスのインスタンス化My_class obj = new My_class()//匿名内部クラスを引数として渡すobj.displayMessage(new Message(){public String greet(){return'Hey '}})}}

出力

このInnerClass In Javaの記事に進むと、

指定されたサブクラスの匿名の内部クラス

ソースコード

class Demo {void show(){System.out.println( 'i was in show method of class')}} class Flavor1Demo {static Demo d = new Demo(){void show(){super.show()System。 out.println( 'iはFlavor1Demoクラスに存在しました')}} public static void main(String [] args){d.show()}}

出力

このInnerClass In Javaの記事に進むと、

指定されたの実装者としての匿名内部クラス インターフェース

ソースコード

class Flavor2Demo {// Helloインターフェイスを実装するクラスstaticHello h = new Hello(){public void show(){System.out.println( 'i was present in anonymous class')}} public static void main(String [] args){h.show()}} interface Hello {void show()}

出力

このInnerClass In Javaの記事に進むと、

静的ネストクラス

これらのクラスは、技術的には内部クラスとして知られていません。これらのクラスは、外部クラスの静的メンバーに似ています。静的にネストされたクラスは、外部クラスの変数とメソッドにアクセスできません。外部クラスをインスタンス化する必要はありません。静的メンバーを使用して直接アクセスできます。

構文

クラス外部{静的クラスnested_example {}}

public class Outer {static class Nested_Example {public void my_method(){System.out.println( 'これはネストされたクラスです')}} public static void main(String args []){Outer.Nested_Examplenested = new Outer.Nested_Example ()nested.my_method()}}

出力

これで、この記事は終わりです。詳細を知りたい場合は、チェックアウト 信頼できるオンライン学習会社であるEdurekaによる。 EdurekaのJavaJ2EEおよびSOAトレーニングおよび認定コースは、Hibernate&SpringなどのさまざまなJavaフレームワークに加えて、コアJavaコンセプトと高度なJavaコンセプトの両方についてトレーニングするように設計されています。

質問がありますか?この記事のコメントセクションにその旨を記載してください。できるだけ早くご連絡いたします。