Indre klasse i Java | Forklart

Indre klasse i Java | Forklart

Java gir en funksjon som lar oss lage en klasse i en annen klasse kjent som Nested Class eller indre klasse, og klassen som holder den indre klassen blir referert til som en ytre klasse. Den indre klassen kan spesifiseres på samme måte som vi spesifiserer enhver annen klasseattributt eller metode.

I Java kan vi ikke erklære/lage en klasse med en tilgangsmodifiserer privat slik at klassen kan nås av en hvilken som helst annen klasse fra innsiden eller utenfor pakken. For å gi sikkerhet, må vi imidlertid lage private klasser, og for å gjøre det, kan vi lage indre klasser med privat tilgangsmodifiserere.

Denne oppskrivningen vil gi en omfattende guide for indre klasser i Java, og i denne forbindelse må vi forstå følgende konsepter:

  • Det som er indre klasse i Java
  • Grunnleggende syntaks for indre klasse i Java
  • Hvordan lage og få tilgang til indre klasse i Java
  • Hvordan få tilgang til attributter/metoder for ytre klasse
  • Privat indre klasse i Java
  • Statisk indre klasse i Java

La oss komme i gang!

Det som er indre klasse i Java

En klasse som er erklært/opprettet i en annen klasse er kjent som en indre klasse. Det kan få tilgang til alle klasseattributtene og medlemsfunksjonene til den ytre klassen. De primære funksjonene i indre klasser inkluderer forbedret sikkerhet, kodelesbarhet og vedlikeholdbarhet.

Syntaks

Den grunnleggende syntaksen til den indre klassen er beskrevet i det undergitte utdraget:

klasse Outerclass
// uttalelser
klasse innerklasse
// uttalelser

Hvordan lage og få tilgang til indre klasse i Java

Oppretting av indre klasse er veldig enkel, alt vi trenger å gjøre er å lage en klasse i en klasse. For å få tilgang til den indre klassen, må vi først lage et forekomst/objekt i den ytre klassen, og etterpå kan vi lage gjenstanden for den indre/nestede klassen.

Eksempel

Ovennevnte utdrag viser hvordan en indre klasse fungerer i Java.

Hvordan få tilgang til attributter/metoder for ytre klasse

Den indre klassen kan få tilgang til klasseattributtene eller medlemsfunksjonene i den ytre klassen, følgende eksempel vil gi en bedre forståelse:

Eksempel

Den undergitte kodebit får tilgang til Navn1 Attributt til den ytre klassen fra den indre klassen:

klasse ytre
String name1 = "John";
klasse indre
public String Name ()
Returnavn1;



offentlig klasse mainclass
public static void main (String [] args)
Ytre obj1 = ny ytre ();
Ytre.Indre obj2 = obj1.ny indre ();
System.ute.Println (obj2.Navn());

Den komplette koden og utdataene vises i det undergitte utdraget:

Utgangen autentiserer at den indre klassen får tilgang til klasseattributtet til den ytre klassen.

Privat indre klasse i Java

I Java kan det ikke opprettes en vanlig klasse med privat Access Modifier Imidlertid kan det opprettes en indre klasse med privat tilgang, og gjenstandene utenfor klassen har ikke tilgang til den private indre klassen.

Eksempel

Hvis noen prøver å få tilgang til den private indre klassen, vil Java kaste en feil:

klasse ytre
String name1 = "John";
privat klasse indre
String name2 = "Micheal";


offentlig klasse mainclass
public static void main (String [] args)
Ytre obj1 = ny ytre ();
Ytre.Indre obj2 = obj1.ny indre ();
System.ute.Println (obj2.name2 + "" + obj1.navn1);

Hele koden er den samme bortsett fra den indre klassetilgangsmodifisereren:

Ovennevnte utdrag verifiserer at en ytre klasse ikke er i stand til å få tilgang til den indre klassen.

Statisk indre klasse i Java

En indre klasse kan også opprettes med den statiske tilgangsmodifisereren, og fordelen med statisk indre klasse er at det ikke er behov for å lage objektet for ytre klasse for oppretting av objekt av Statisk indre klasse.

Forekomsten/objektet til den statiske klassen kan opprettes ved hjelp av følgende syntaks:

Outerclass.Innersclass OBJ = Ny ytreklasse.Indreclass ();

Eksempel

klasse ytre
String name1 = "John";
statisk klasse indre
String name2 = "Micheal";


offentlig klasse mainclass
public static void main (String [] args)
Ytre.Indre obj2 = ny ytre.Indre();
System.ute.Println (obj2.name2);

Den komplette koden og respektive utgang vil gå slik:

EN statisk Indre klasse er ikke i stand til å få tilgang til klasseattributtene eller metodene i den ytre klassen:

Ovennevnte kodebit bekrefter at statisk indre klasse ikke har tilgang til medlemmet av ytre klasse.

Konklusjon

I Java kan det opprettes en klasse i en annen klasse referert til som indre klasse og for å lage en indre klasse først må vi lage en forekomst/objekt i den ytre klassen, og deretter kan vi lage gjenstanden for den indre klassen. EN Privat indre klasse Kan også opprettes i Java, og det kan ikke nås fra den ytre klassen. Dessuten i en Statisk indre klasse, det er ikke nødvendig å lage gjenstand for ytre Klasse for å få tilgang til den indre statiske klassen, og den har ikke tilgang til klassemedlemmene i den ytre klassen.