Hogyan valósítsuk meg a beágyazott osztályt Java-ban?



Ez a cikk a java beágyazott osztályairól segít megérteni, hogyan kell megvalósítani a beágyazott osztályokat egy példa program segítségével.

A Java-ban egy osztály meghatározható egy másik osztályon belül, és ezeket az osztályokat beágyazott osztályoknak nevezzük. Ezek az osztályok segítenek csak egy helyen használt osztályok logikus csoportosításában. Ez növeli a kapszulázás használatát, és olvashatóbb és karbantarthatóbb kódot hoz létre. Ez a blog a „Java beágyazott osztálya” című témakörben gyors, azonnali bevezetést nyújt a beágyazott osztályokhoz . Az alábbiakban bemutatjuk a blog témáit:

Beágyazott osztály Java-ban

Az osztály az osztályon belül írtakat beágyazott osztálynak, míg a belső osztályt tartó osztályt külső osztálynak nevezzük. Az alábbiakban néhány szempontot érdemes megjegyezni a Java beágyazott osztályaihoz -





  • A beágyazott osztály hatókörét behatároló osztálya határolja.
  • A beágyazott osztály hozzáférhet annak az osztálynak a tagjaihoz, amelyben be van ágyazva. De a bezáró osztály nem férhet hozzá a beágyazott osztály tagjaihoz.
  • Beágyazott osztály a záró osztálytagja.
  • A beágyazott osztály nyilvánosnak, magánnak, védettnek vagy csomag-magánnak nyilvánítható.

Beágyazott osztályok típusai

Belső / nem statikus beágyazott osztály: A Java-ban a nem statikus osztályok biztonsági mechanizmus. Egy osztály nem társítható a hozzáférés a szerkesztéshez privát, de ha az osztály tagja más osztály tagjának, akkor a nem statikus osztály priváttá tehető.

A belső osztályok típusai és mínusz



  • Belső osztály
  • Method-local Belső osztály
  • Névtelen belső osztály

Belső osztály

Belső osztály létrehozásához csak egy osztályt kell írni egy osztályon belül. Egy belső osztály lehet privát, amelyhez nem lehet hozzáférni tárgy osztályon kívül. Az alábbiakban egy belső osztály létrehozására szolgáló program található. Ebben a példában a belső osztály priváttá válik, és az osztályhoz egy módszer segítségével férhet hozzá.

class Outer_Test {int num // belső osztály privát osztály Inner_Test {public void print () {System.out.println ('Ez a mi belső osztályunk')}}} // A belső osztály elérése a void display_Inner () metódusból Inner_Test internal = new Inner_Test () inner.print ()}} public class My_class {public static void main (String args []) {// A külső osztály példányának megadása Outer_Test external = new Outer_Test () // A display_Inner () metódus elérése . external.display_Inner ()}}

Kimenet
Beágyazott osztály belső- Edureka

Method-local Belső osztály

A Java-ban egy osztály írható az a-ba és ez egy helyi típus. A lokális változókhoz hasonlóan a belső osztály hatóköre is korlátozott a módszeren belül. A módszer-lokális belső osztály csak abban a módszerben épül be, ahol a belső osztály meghatározva van. Az alábbi program bemutatja a módszer-lokális belső osztály használatát.



public class Outerclass {// a külső osztály példamódszere void my_Method () {int num = 1001 // method-local belső osztály osztály StarInner_Test {public void print () {System.out.println ('Ez a csillag belső osztály' + szám)}} // a belső osztály vége // A belső osztály elérése StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass external = new Outerclass () external. my_Method ()}}

Kimenet

mi a példány változó a java-ban

Névtelen belső osztály

Az anonim belső osztály az osztály neve nélkül deklarált belső osztály. Névtelen belső osztályban egyszerre deklaráljuk és példányosítjuk. Általában akkor használják őket, ha felül kell írni egy osztály vagy egy interfész metódusát. Az alábbi program bemutatja, hogyan kell használni egy névtelen belső osztályt -

absztrakt osztály AnonymousInnerTest {public abstract void mytest ()} public class Outer_class {public static void main (String args []) {AnonymousInnerTest internal = new AnonymousInnerTest () {public void mytest () {System.out.println ('Ez egy névtelen belső tesztosztály példája ')}} inner.mytest ()}}

Kimenet-

Statikus beágyazott osztály: NAK NEK egy beágyazott osztály, amely a külső osztály statikus tagja. A belső osztálytól eltérően a statikus beágyazott osztály nem férhet hozzá a külső osztály tagváltozóihoz, mert a statikusan beágyazott osztály nem igényli a külső osztály példányát. Ezért nincs hivatkozás a külső osztályra az OuterClass-szal. Ez. A statikusan beágyazott osztály szintaxisa a következő:

class MyOuter {static class Nested_Test {}}

Példa a statikus beágyazott osztályra

public class Outer {static class Nested_Test {public void my_method () {System.out.println ('Ez az Edureka beágyazott tesztosztálya')}} public static void main (String args []) {Outer.Nested_Test nested = new Outer. Nested_Test () beágyazott.my_method ()}}

Kimenet

pass by value adja át referencia java

Különbség a statikus és a nem statikus beágyazott osztályok között

A statikusan beágyazott osztályok nem férhetnek hozzá közvetlenül a becsatoló osztály többi tagjához. Mivel statikus, egy objektumon keresztül hozzá kell férnie a bezáró osztály nem statikus tagjaihoz, ami azt jelenti, hogy nem hivatkozhat közvetlenül a bezáró osztály nem statikus tagjaira. És e korlátozás miatt statikusan beágyazott osztályokat ritkán használnak.

A nem statikus beágyazott osztályok hozzáférhetnek külső osztályának minden tagjához, és közvetlenül hivatkozhatnak rájuk ugyanúgy, mint a külső osztály többi nem statikus tagjai.

Mielőtt a cikk végére érnénk, nézzünk meg néhány kulcsfontosságú pontot.

Kulcsfontosságú megjegyzendő pontok

  • A belső osztályt az osztály rendes tagjának tekintik.
  • Mivel a belső osztály a külső osztály tagja, különféle hozzáférés-módosítókat alkalmazhat, például védett, privát belső osztályához.
  • Mivel a Nested osztály tagja a bezáró osztálynak, használhatja. (dot) jelölés a beágyazott osztály és tagjainak elérése érdekében.
  • Beágyazott osztály használata könnyebben olvashatóvá és jobbá teszi a kódot Egységbezárás .
  • A belső osztály hozzáfér a külső osztály többi tagjához, még akkor is, ha magánembernek nyilvánítják őket.

Ezzel véget értünk ennek a blognak a Java beágyazott osztályairól. Ha többet szeretne megtudni a Java-ról, nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Az Edureka Java J2EE és SOA képzési és tanúsítási tanfolyamát olyan hallgatók és szakemberek számára tervezték, akik Java fejlesztők szeretnének lenni. A tanfolyamot úgy tervezték meg, hogy előrelépést nyújtson a Java programozásban, és képezze mind az alapvető, mind a fejlett Java koncepciókhoz, valamint a különböző Java keretrendszerekhez, például a Hibernate & Spring.

Van egy kérdésünk? Kérjük, említse meg ennek a „Beágyazott osztály a Java-ban” blog megjegyzés rovatának, és a lehető leghamarabb kapcsolatba lépünk Önnel.