Javaでネストされたクラスを実装する方法は?



Javaでのネストされたクラスに関するこの記事は、サンプルプログラムを使用してネストされたクラスを実装する方法を理解するのに役立ちます。

Javaでは、クラスは別のクラス内で定義でき、そのようなクラスはネストされたクラスと呼ばれます。これらのクラスは、1か所でのみ使用されるクラスを論理的にグループ化するのに役立ちます。これにより、カプセル化の使用が増え、より読みやすく保守しやすいコードが作成されます。 「Javaのネストされたクラス」に関するこのブログでは、ネストされたクラスの要点を簡単に紹介します。 。以下は、このブログで取り上げられているトピックです。

Javaのネストされたクラス

ザ・ クラス クラス内に記述されたものはネストされたクラスと呼ばれ、内部クラスを保持するクラスは外部クラスと呼ばれます。以下は、Javaのネストされたクラスについて覚えておくべきいくつかのポイントです–





  • ネストされたクラスのスコープは、それを囲むクラスによって制限されます。
  • ネストされたクラスは、ネストされているクラスのメンバーにアクセスできます。ただし、囲んでいるクラスは、ネストされたクラスのメンバーにアクセスできません。
  • ネストされたクラスは、それを囲むクラスメンバーです。
  • ネストされたクラスは、public、private、protected、またはpackage-privateとして宣言できます。

ネストされたクラスのタイプ

内部/非静的ネストクラス: Javaでは、非静的クラスはセキュリティメカニズムです。クラスをに関連付けることはできません アクセス編集 プライベートですが、他のクラスのメンバーとしてクラスがある場合は、非静的クラスをプライベートにすることができます。

内部クラスの種類&マイナス



  • インナークラス
  • メソッド-ローカル内部クラス
  • 匿名のインナークラス

インナークラス

内部クラスを作成するには、クラス内にクラスを作成する必要があります。内部クラスはプライベートにすることができ、そこからアクセスすることはできません。 オブジェクト クラスの外。以下は、内部クラスを作成するためのプログラムです。この例では、内部クラスがプライベートになり、メソッドを介してクラスにアクセスされます。

class Outer_Test {int num //内部クラスprivateclass Inner_Test {public void print(){System.out.println( 'This is a Our inner class')}} //メソッドから内部クラスにアクセスするvoiddisplay_Inner(){ Inner_Test inner = new Inner_Test()inner.print()}} public class My_class {public static void main(String args []){//外部クラスのインスタンス化Outer_Test outside = new Outer_Test()// display_Inner()メソッドへのアクセス。 outside.display_Inner()}}

出力
ネストされたクラスの内部-Edureka

メソッド-ローカル内部クラス

Javaでは、クラスは そしてそれはローカルタイプです。ローカル変数と同様に、内部クラスのスコープはメソッド内で制限されます。メソッドローカル内部クラスは、内部クラスが定義されているメソッド内にのみ組み込まれます。以下のプログラムは、メソッドローカル内部クラスの使用方法を示しています。



public class Outerclass {//外部クラスのインスタンスメソッドvoidmy_Method(){int num = 1001 //メソッド-ローカル内部クラスクラスStarInner_Test {public void print(){System.out.println( 'これはスター内部クラスです' + num)}} //内部クラスの終了//内部クラスへのアクセスStarInner_Teststar = new StarInner_Test()star.print()} public static void main(String args []){Outerclass external = new Outerclass()outer。 my_Method()}}

出力

匿名のインナークラス

匿名内部クラスは、クラス名なしで宣言された内部クラスです。匿名の内部クラスでは、宣言とインスタンス化を同時に行います。これらは通常、クラスまたはインターフェイスのメソッドをオーバーライドする必要がある場合に使用されます。以下のプログラムは、匿名の内部クラスを使用する方法を示しています–

抽象クラスAnonymousInnerTest {public abstract void mytest()} public class Outer_class {public static void main(String args []){AnonymousInnerTest inner = new AnonymousInnerTest(){public void mytest(){System.out.println( 'これは匿名内部テストクラスの例 ')}} inner.mytest()}}

出力-

静的ネストクラス: に は、外部クラスの静的メンバーであるネストされたクラスです。内部クラスとは異なり、静的ネストクラスは外部クラスのインスタンスを必要としないため、静的ネストクラスは外部クラスのメンバー変数にアクセスできません。したがって、OuterClass.thisを使用した外部クラスへの参照はありません。静的ネストクラスの構文は–

クラスMyOuter {静的クラスNested_Test {}}

静的ネストクラスの例

public class Outer {static class Nested_Test {public void my_method(){System.out.println( 'これはEdurekaのネストされたテストクラスです')}} public static void main(String args []){Outer.Nested_Testnested = newOuter。 Nested_Test()nested.my_method()}}

出力

静的ネストクラスと非静的ネストクラスの違い

静的にネストされたクラスは、それを囲むクラスの他のメンバーに直接アクセスすることはできません。静的であるため、オブジェクトを介して囲んでいるクラスの非静的メンバーにアクセスする必要があります。つまり、囲んでいるクラスの非静的メンバーを直接参照することはできません。また、この制限により、静的にネストされたクラスはほとんど使用されません。

非静的ネストクラスは、その外部クラスのすべてのメンバーにアクセスでき、外部クラスの他の非静的メンバーと同じ方法でそれらを直接参照できます。

日付文字列を日付に変換する

この記事を終える前に、いくつかの重要なポイントを見てみましょう。

覚えておくべきキーポイント

  • 内部クラスは、クラスの通常のメンバーとして扱われます。
  • 内部クラスは外部クラスのメンバーであるため、保護された、プライベートなどのさまざまなアクセス修飾子を内部クラスに適用できます。
  • Nestedクラスはそれを囲むクラスのメンバーであるため、を使用できます。 (ドット)ネストされたクラスとそのメンバーにアクセスするための表記。
  • ネストされたクラスを使用すると、コードが読みやすくなり、提供が向上します カプセル化
  • 内部クラスは、プライベートとして宣言されている場合でも、外部クラスの他のメンバーにアクセスできます。

これで、Javaのネストされたクラスに関するこのブログは終わりです。 Javaについて詳しく知りたい場合は、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 EdurekaのJavaJ2EEおよびSOAトレーニングおよび認定コースは、Java開発者になりたい学生および専門家向けに設計されています。このコースは、Javaプログラミングをすぐに開始できるように設計されており、HibernateやSpringなどのさまざまなJavaフレームワークに加えて、コアと高度なJavaの両方の概念についてトレーニングします。

質問がありますか?この「Javaのネストされたクラス」ブログのコメントセクションでそれについて言及してください。できるだけ早くご連絡いたします。