Hur implementerar jag inre klass i Java?



Inre klass i java betyder en klass som är medlem i en annan klass. Den här artikeln hjälper dig att riva upp den här klassen.

Inre klass i java betyder en klass som är medlem i en annan klass. I , det finns olika typer av inre klasser. Den här artikeln hjälper dig att riva upp alla dessa klasser. Följande tips kommer att diskuteras i detalj,

Så låt oss komma igång med den här artikeln Inner Class In Java,





Inre klass i Java

Kapslad inre klass

Denna klass har åtkomst till alla privata instansvärden för den yttre klassen. Att skriva en klass inom en annan klass är också tillåten i Java. Klassen skriven inom är känd kapslad klass och den klass som håller den inre klassen kallas yttre klass.



Syntax

klass yttre plats {klass inre plats {}}

Exempel

I exemplet nedan ger vi den inre klassen privat och får tillgång till klassen med hjälp av metoden.



klass Outer_place {int num private class Inner_place {public void print () {System.out.println ('It is an inner class')}} void display_Inner () {Inner_place inner = new Inner_place () inner.print ()}} offentlig klass My_class {public static void main (String args []) {Outer_place outer = new Outer_place () outer.display_Inner ()}}

Produktion

Output - Inre klass i Java - Edureka

Här är yttre plats den yttre klassen och den inre platsen kallas den inre klassen.

Fortsätter med denna inre klass i Java-artikel,

Åtkomst till privata medlemmar

Inre klasser används också för att få tillgång till privata medlemmar i klassen. Antag att det finns en klass som har privata medlemmar för att komma åt dem. Skriv nu en inre klass inom klassen och få tillgång till de privata medlemmarna från en metod inom den inre klassen.

statiskt blockexempel i java

Här är exemplet,

klass Outer_place {private int num = 162 class Inner_place {public int getNum () {System.out.println ('It is a getnum method of inner class:') return num}}} public class My_class {public static void main (String args []) {yttre plats yttre = ny yttre plats () yttre plats.inre plats inre = yttre. ny inre plats () System.out.println (inner.getNum ())}}

Produktion

Gå vidare,

Metod för lokala inre klasser

I Java kan du skriva en klass inom metoden och den kommer att kallas lokal typ. Liksom alla lokala variabler är omfattningen av inre klass begränsad inom en metod.

Exempel

Följande exempel visar hur en metod lokal inre klass implementeras.

public class Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ('method for inner classes' + num)}} MethodInner_place inner = new MethodInner_place () inner.print ( )} offentlig statisk ogiltig huvud (String args []) {Yttre plats yttre = ny yttre plats () yttre. min_Metod ()}}

Produktion

Fortsätter med denna inre klass i Java-artikel,

Anonym inre klass

Varje inre klass som deklareras utan klassnamnet kallas anonym inre klass. När det gäller anonyma inre klasser instanserar vi och förklarar det samtidigt.

upphandlingshantering i projektledning

När vi vill åsidosätta klassmetoden eller ett gränssnitt använder vi den här klassen.

Syntax

AnonymousInner obj1 = ny AnonymousInner () {public void method () {}}

Exempel

abstrakt klass AnonymousInner {public abstract void mymethod ()} public class Outer_class {public static void main (String args []) {AnonymousInner inner = new AnonymousInner () {public void mymethod () {System.out.println ('exempel på anonym inre klass ')}} inner.mymethod ()}}

Produktion

Fortsätter med denna inre klass i Java-artikel,

Som argument för anonym inre klass

I detta, Om en metod accepterar gränssnittsobjektet, en abstrakt klass eller den konkreta klassen, kan vi implementera gränssnittet, skicka objektet till metoden och utvidga abstraktklassen.

Syntax

obj. metod (ny klass () {public void do {}})

Exempel

// interface interface Message {String greet ()} public class My_class {// objekt för gränssnittsmeddelande accepteras av denna metod public void displayMessage (Message m) {System.out.println (m.greet () + ', exempel på anonym inre klass som argument ')} public static void main (String args []) {// Instantiating of class My_class obj = new My_class () // Passing the anonym inner class as argument obj.displayMessage (new Message () {public Stränghälsning () {return 'Hey'}})}}

Produktion

Fortsätter med denna inre klass i Java-artikel,

skillnad mellan metodöverbelastning och åsidosättande

Anonym inre klass av en specificerad underklass

Källkod

class Demo {void show () {System.out.println ('I was in show method of class')}} class Flavor1Demo {static Demo d = new Demo () {void show () {super.show () System. out.println ('jag var närvarande i Flavor1Demo-klass')}} offentligt statiskt tomrum huvud (String [] args) {d.show ()}}

Produktion

Fortsätter med denna inre klass i Java-artikel,

Anonym inre klass som en implementerare av specificerad Gränssnitt

Källkod

klass Flavour2Demo {// klass som implementerar Hello interface static Hello h = new Hello () {public void show () {System.out.println ('I was present in anonymous class')}} public static void main (String [] args) {h.show ()}} gränssnitt Hello {void show ()}

Produktion

Fortsätter med denna inre klass i Java-artikel,

Statiska kapslade klasser

Dessa klasser är inte tekniskt kända som inre klasser. Dessa klasser liknar den statiska medlemmen i den yttre klassen. En statisk kapslad klass har ingen tillgång till variabler och metoder för yttre klass. Vi behöver inte starta den yttre klassen, den kan nås direkt med de statiska medlemmarna.

Syntax

Klass yttre {Statisk klass nestad_exempel {}}

Exempel

public class Outer {static class Nested_Example {public void my_method () {System.out.println ('It is the nested class')}} public static void main (String args []) {Outer.Nested_Example nested = new Outer.Nested_Example () nested.my_method ()}}

Produktion

Således har vi kommit till ett slut på denna artikel. Om du vill lära dig mer,kolla in av Edureka, ett pålitligt inlärningsföretag online. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för att träna dig för både grundläggande och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen i den här artikeln så kommer vi tillbaka till dig så snart som möjligt.