Hvordan implementere nestet klasse i Java?



Denne artikkelen om nestet klasse i java vil hjelpe deg å forstå hvordan du implementerer nestede klasser ved hjelp av et eksempelprogram.

I Java kan en klasse defineres i en annen klasse, og slike klasser er kjent som nestede klasser. Disse klassene hjelper deg med å logisk gruppere klasser som bare brukes på ett sted. Dette øker bruken av innkapsling og skaper en mer lesbar og vedlikeholdbar kode. Denne bloggen på 'Nested Class in Java' vil gi deg en rask og presis introduksjon til nestede klasser i . Nedenfor er emnene som dekkes i denne bloggen:

Nestet klasse i Java

De klasse skrevet i en klasse kalles nestet klasse mens klassen som holder den indre klassen kalles den ytre klassen. Nedenfor er noen poeng å huske på nestede klasser i Java -





  • Omfanget av en nestet klasse er begrenset av den omsluttende klassen.
  • En nestet klasse har tilgang til medlemmene i klassen der den er nestet. Men klassen som inngår, får ikke tilgang til medlemmene i den nestede klassen.
  • En nestet klasse er dens omsluttende klassemedlem.
  • En nestet klasse kan erklæres offentlig, privat, beskyttet eller pakke-privat.

Typer nestede klasser

Indre / ikke-statisk nestet klasse: I Java er ikke-statiske klasser en sikkerhetsmekanisme. En klasse kan ikke knyttes til tilgangsredigering privat, men hvis du har klassen som medlem av en annen klasse, kan den ikke-statiske klassen gjøres privat.

Typer indre klasser og minus



  • Indre klasse
  • Metodelokal indre klasse
  • Anonym indre klasse

Indre klasse

For å lage en indre klasse trenger du bare å skrive en klasse i en klasse. En indre klasse kan være privat som ikke er tilgjengelig fra en gjenstand utenfor klassen. Nedenfor er et program for å lage en indre klasse. I dette eksemplet blir den indre klassen gjort privat og tilgang til klassen gjennom en metode.

klasse Outer_Test {int num // inner class private class Inner_Test {public void print () {System.out.println ('This is an Our inner class')}} // Å få tilgang til den indre klassen fra metoden void display_Inner () { Inner_Test inner = new Inner_Test () inner.print ()}} public class My_class {public static void main (String args []) {// Instanting the outer class Outer_Test outer = new Outer_Test () // Tilgang til display_Inner () -metoden . outer.display_Inner ()}}

Produksjon
Nestet klasse indre - Edureka

Metodelokal indre klasse

I Java kan en klasse skrives innenfor en og det er en lokal type. I likhet med lokale variabler er omfanget av en indre klasse begrenset innenfor metoden. En metodelokal indre klasse er bare innlemmet i metoden der den indre klassen er definert. Programmet nedenfor viser hvordan du bruker en metodelokal indre klasse.



public class Outerclass {// instansemetode for den ytre klassen 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)}} // slutt på indre klasse // Tilgang til indre klasse StarInner_Test stjerne = ny StarInner_Test () stjerne.avtrykk ()} offentlig statisk ugyldig hoved (String args []) {Ytre klasse ytre = ny ytre klasse () ytre. min_Metode ()}}

Produksjon

hvordan lage en dobbel en int i java

Anonym indre klasse

Anonym indre klasse er en indre klasse erklært uten klassenavn. I en anonym indre klasse erklærer og instantierer vi den samtidig. De brukes vanligvis når du trenger å overstyre metoden til en klasse eller et grensesnitt. Programmet nedenfor viser hvordan du bruker 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 ('This is an eksempel på anonym indre testklasse ')}} inner.mytest ()}}

Produksjon-

Statisk nestet klasse: TIL er en nestet klasse som er et statisk medlem av den ytre klassen. I motsetning til indre klasse, kan den statiske nestede klassen ikke få tilgang til medlemsvariabler i den ytre klassen fordi den statiske nestede klassen ikke krever en forekomst av den ytre klassen. Derfor er det ingen referanse til den ytre klassen med OuterClass. Denne. Syntaksen til en statisk nestet klasse er -

klasse MyOuter {statisk klasse Nested_Test {}}

Eksempel på statisk nestet klasse

public class Outer {static class Nested_Test {public void my_method () {System.out.println ('This is Edureka's nested test class')}} public static void main (String args []) {Outer.Nested_Test nested = new Ytre. Nested_Test () nested.my_method ()}}

Produksjon

substring i SQL Server-eksempler

Forskjellen mellom statisk og ikke-statisk nestet klasse

Statisk nestede klasser har ikke direkte tilgang til andre medlemmer i klassen. Siden den er statisk, må den få tilgang til de ikke-statiske medlemmene av den omsluttende klassen gjennom et objekt som betyr at den ikke kan referere til de ikke-statiske medlemmene av den innelukkende klassen direkte. Og på grunn av denne begrensningen brukes sjelden statiske nestede klasser.

Ikke-statiske nestede klasser har tilgang til alle medlemmer av den ytre klassen og kan henvise til dem direkte på samme måte som andre ikke-statiske medlemmer av den ytre klassen gjør.

Før vi kommer til slutten av denne artikkelen, la oss se på noen få viktige punkter.

Viktige punkter å huske

  • Den indre klassen blir behandlet som et vanlig medlem av en klasse.
  • Siden den indre klassen er medlemmer av den ytre klassen, kan du bruke forskjellige tilgangsmodifikatorer som beskyttet, privat for din indre klasse.
  • Siden Nested-klassen er medlem av den omsluttende klassen, kan du bruke. (prikk) notasjon for å få tilgang til den nestede klassen og dens medlemmer.
  • Å bruke en nestet klasse gjør koden din mer lesbar og gir bedre innkapsling .
  • Den indre klassen har tilgang til andre medlemmer av den ytre klassen, selv om de blir erklært private.

Med dette kommer vi til en slutt på denne bloggen om nestede klasser i Java. Hvis du ønsker å lære mer om Java, kan du sjekke ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne 'nestede klassen i Java' -bloggen, så kommer vi tilbake til deg så snart som mulig.