Hvordan implementeres indlejret klasse i Java?



Denne artikel om indlejret klasse i java hjælper dig med at forstå, hvordan du implementerer indlejrede klasser ved hjælp af et eksempelprogram.

I Java kan en klasse defineres inden for en anden klasse, og sådanne klasser er kendt som indlejrede klasser. Disse klasser hjælper dig med at logisk gruppere klasser, der kun bruges ét sted. Dette øger brugen af ​​indkapsling og skaber en mere læsbar og vedligeholdelig kode. Denne blog om 'Indlejret klasse i Java' giver dig en hurtig introduktion til indlejrede klasser i . Nedenfor er emnerne i denne blog:

Indlejret klasse i Java

Det klasse skrevet i en klasse kaldes den indlejrede klasse, mens den klasse, der holder den indre klasse, kaldes den ydre klasse. Nedenfor er nogle punkter, du skal huske for indlejrede klasser i Java -





  • Omfanget af en indlejret klasse er afgrænset af den indesluttende klasse.
  • En indlejret klasse har adgang til medlemmerne af den klasse, hvor den er indlejret. Men den indesluttende klasse kan ikke få adgang til medlemmerne af den indlejrede klasse.
  • En indlejret klasse er dens omsluttende klassemedlem.
  • En indlejret klasse kan erklæres offentlig, privat, beskyttet eller pakke-privat.

Typer af indlejrede klasser

Indre / ikke-statisk indlejret klasse: I Java er ikke-statiske klasser en sikkerhedsmekanisme. En klasse kan ikke tilknyttes adgangsredigering privat, men hvis du har klassen som medlem af en anden klasse, kan den ikke-statiske klasse gøres privat.

Typer af indre klasser og minus



js får længden på arrayet
  • Indre klasse
  • Metodelokal indre klasse
  • Anonym indre klasse

Indre klasse

For at skabe en indre klasse skal du bare skrive en klasse inden for en klasse. En indre klasse kan være privat, som ikke kan tilgås fra en objekt uden for klassen. Nedenfor er et program til at skabe en indre klasse. I dette eksempel gøres den indre klasse privat og får adgang til klassen gennem en metode.

klasse Outer_Test {int num // indre klasse privat klasse Inner_Test {public void print () {System.out.println ('This is an Our inner class')}} // Adgang til den indre klasse fra metoden void display_Inner () { Inner_Test inner = new Inner_Test () inner.print ()}} public class My_class {public static void main (String args []) {// Instantiating the outer class Outer_Test outer = new Outer_Test () // Adgang til display_Inner () metoden . ydre.display_Inner ()}}

Produktion
Indlejret klasse indre - Edureka

Metodelokal indre klasse

I Java kan en klasse skrives inden for en og det er en lokal type. Svarende til lokale variabler er omfanget af en indre klasse begrænset inden for metoden. En metode-lokal indre klasse er kun indarbejdet i metoden, hvor den indre klasse er defineret. Nedenstående program viser, hvordan man bruger en metode-lokal indre klasse.



public class Outerclass {// instansmetode for den ydre klasse ugyldig my_Method () {int num = 1001 // method-local inner class class StarInner_Test {public void print () {System.out.println ('This is star inner class' + num)}} // slutning af indre klasse // Adgang til den indre klasse StarInner_Test stjerne = ny StarInner_Test () stjerne.print ()} offentlig statisk ugyldig hoved (String args []) {Yderklasse ydre = ny Yderklasse () ydre. min_Metode ()}}

Produktion

Anonym indre klasse

Anonym indre klasse er en indre klasse, der erklæres uden et klassenavn. I en anonym indre klasse erklærer og insti titerer vi det på samme tid. De bruges generelt, når du har brug for at tilsidesætte metoden til en klasse eller en grænseflade. Nedenstående program viser, hvordan man bruger en anonym indre klasse -

abstrakt klasse 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 ('Dette er en eksempel på anonym indre testklasse ')}} inner.mytest ()}}

Produktion-

Statisk indlejret klasse: TIL er en indlejret klasse, der er et statisk medlem af den ydre klasse. I modsætning til indre klasse kan den statiske indlejrede klasse ikke få adgang til medlemsvariabler i den ydre klasse, fordi den statiske indlejrede klasse ikke kræver en forekomst af den ydre klasse. Derfor er der ingen henvisning til den ydre klasse med OuterClass. Denne. Syntaksen for en statisk indlejret klasse er -

klasse MyOuter {statisk klasse Nested_Test {}}

Eksempel på statisk indlejret klasse

offentlig klasse Ydre {statisk klasse Nested_Test {offentlig ugyldig min_metode () {System.out.println ('Dette er Edurekas indlejrede testklasse')}} offentlig statisk ugyldig hoved (String args []) {Outer.Nested_Test nestet = ny ydre. Nested_Test () nested.my_method ()}}

Produktion

Forskellen mellem statisk og ikke-statisk indlejret klasse

Statisk indlejrede klasser har ikke direkte adgang til andre medlemmer af den indesluttende klasse. Da den er statisk, skal den få adgang til de ikke-statiske medlemmer af sin lukkende klasse gennem et objekt, hvilket betyder, at den ikke kan henvise direkte til de ikke-statiske medlemmer af sin lukkende klasse. Og på grund af denne begrænsning bruges statisk indlejrede klasser sjældent.

Ikke-statiske indlejrede klasser har adgang til alle medlemmer af dens ydre klasse og kan henvise til dem direkte på samme måde som andre ikke-statiske medlemmer af den ydre klasse gør.

Før vi kommer til slutningen af ​​denne artikel, lad os se på et par nøglepunkter.

Nøglepunkter at huske

  • Den indre klasse behandles som et almindeligt medlem af en klasse.
  • Da den indre klasse er medlemmer af den ydre klasse, kan du anvende forskellige adgangsmodifikatorer som beskyttet, privat på din indre klasse.
  • Da den nestede klasse er medlem af den lukkende klasse, kan du bruge. (dot) notation for at få adgang til den indlejrede klasse og dens medlemmer.
  • Brug af en indlejret klasse gør din kode mere læsbar og giver bedre indkapsling .
  • Den indre klasse har adgang til andre medlemmer af den ydre klasse, selvom de erklæres private.

Med dette afslutter vi denne blog om indlejrede klasser i Java. Hvis du ønsker at lære mere om Java, skal du tjekke af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til studerende og fagfolk, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarfeltet på denne 'Nested Class in Java' -blog, og vi vender tilbage til dig hurtigst muligt.