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()}}
出力
ここで、外側の場所は外側のクラスであり、内側の場所は内側のクラスと呼ばれます。
この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コンセプトの両方についてトレーニングするように設計されています。
質問がありますか?この記事のコメントセクションにその旨を記載してください。できるだけ早くご連絡いたします。