Hur implementerar jag kapslad klass i Java?



Den här artikeln om kapslad klass i java hjälper dig att förstå hur du implementerar kapslade klasser med hjälp av ett exempelprogram.

I Java kan en klass definieras inom en annan klass och sådana klasser kallas kapslade klasser. Dessa klasser hjälper dig att logiskt gruppera klasser som bara används på ett ställe. Detta ökar användningen av inkapsling och skapar en mer läsbar och underhållbar kod. Den här bloggen på 'Nestad klass i Java' ger dig en snabb introduktion till kapslade klasser i . Nedan följer ämnena i denna blogg:

Kapslad klass i Java

De klass skrivna inom en klass kallas den kapslade klassen medan den klass som håller den inre klassen kallas den yttre klassen. Nedan följer några punkter att komma ihåg för kapslade klasser i Java -





  • Omfånget för en kapslad klass begränsas av dess slutande klass.
  • En kapslad klass har tillgång till medlemmarna i den klass där den är kapslad. Men den omslutande klassen kan inte komma åt medlemmarna i den kapslade klassen.
  • En kapslad klass är dess slutande klassmedlem.
  • En kapslad klass kan förklaras offentlig, privat, skyddad eller paket-privat.

Typer av kapslade klasser

Inre / icke-statisk kapslad klass: I Java är icke-statiska klasser en säkerhetsmekanism. En klass kan inte associeras med åtkomst redigera privat, men om du har klassen som medlem i en annan klass kan den icke-statiska klassen göras privat.

strängen kan ändras eller ändras i java

Typer av inre klasser och minus



  • Inre klass
  • Metod-lokal inre klass
  • Anonym inre klass

Inre klass

För att skapa en inre klass behöver du bara skriva en klass inom en klass. En inre klass kan vara privat som inte kan nås från en objekt utanför klassen. Nedan följer ett program för att skapa en inre klass. I det här exemplet görs den inre klassen privat och åtkomst till klassen via en metod.

klass Outer_Test {int num // inner class private class Inner_Test {public void print () {System.out.println ('This is an Our inner class')}} // Åtkomst till sin inre klass från 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 () // Accessing the display_Inner () method . yttre.display_Inner ()}}

Produktion
Kapslad klass inre - Edureka

Metod-lokal inre klass

I Java kan en klass skrivas inom a och det är en lokal typ. I likhet med lokala variabler är omfattningen av en inre klass begränsad inom metoden. En metod-lokal inre klass ingår endast i metoden där den inre klassen definieras. Nedanstående program visar hur man använder en metod-lokal inre klass.



public class Outerclass {// instansmetod för den yttre klassen ogiltig my_Method () {int num = 1001 // method-local inner class class StarInner_Test {public void print () {System.out.println ('This is star inner class' + num)}} // slut på inre klass // Åtkomst till inre klass StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Ytterklass yttre = ny yttre klass () yttre. min_Metod ()}}

Produktion

c ++ stl intervjufrågor

Anonym inre klass

Anonym inre klass är en inre klass som deklarerats utan klassnamn. I en anonym inre klass förklarar vi och instantierar det samtidigt. De används vanligtvis när du behöver åsidosätta metoden för en klass eller ett gränssnitt. Nedanstående program visar hur man använder en anonym inre klass -

abstrakt klass 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 exempel på anonym inre testklass ')}} inner.mytest ()}}

Produktion-

Statisk kapslad klass: TILL är en kapslad klass som är en statisk medlem av den yttre klassen. Till skillnad från inre klass kan den statiska kapslade klassen inte komma åt medlemsvariabler i den yttre klassen eftersom den statiska kapslade klassen inte kräver en instans av den yttre klassen. Därför finns det ingen hänvisning till den yttre klassen med OuterClass. Detta. Syntaxen för en statisk kapslad klass är -

klass MyOuter {statisk klass Nested_Test {}}

Exempel på statisk kapslad klass

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 Outer. Nested_Test () nested.my_method ()}}

Produktion

Skillnaden mellan statiska och icke-statiska kapslade klasser

Statiska kapslade klasser har inte direkt tillgång till andra medlemmar i den omslutande klassen. Eftersom den är statisk måste den komma åt de icke-statiska medlemmarna i sin omslutande klass genom ett objekt vilket innebär att den inte kan hänvisa till de icke-statiska medlemmarna i sin omslutande klass direkt. Och på grund av denna begränsning används sällan statiska kapslade klasser.

slutligen och slutför i Java

Icke-statiska kapslade klasser har tillgång till alla medlemmar i dess yttre klass och kan hänvisa till dem direkt på samma sätt som andra icke-statiska medlemmar i den yttre klassen gör.

Innan vi kommer till slutet av den här artikeln, låt oss titta på några viktiga punkter.

Viktiga punkter att komma ihåg

  • Den inre klassen behandlas som en vanlig medlem i en klass.
  • Eftersom den inre klassen är medlemmar i den yttre klassen kan du tillämpa olika åtkomstmodifierare som skyddad, privat på din inre klass.
  • Eftersom Nested-klassen är medlem i sin slutande klass kan du använda. (punkt) notation för att komma åt den kapslade klassen och dess medlemmar.
  • Att använda en kapslad klass gör din kod mer läsbar och ger bättre inkapsling .
  • Den inre klassen har tillgång till andra medlemmar i den yttre klassen, även om de förklaras privata.

Med detta kommer vi till slutet av den här bloggen om kapslade klasser i Java. Om du vill lära dig mer om Java, kolla in av Edureka, ett pålitligt online-lärande företag med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för studenter och yrkesverksamma som vill bli Java-utvecklare. Kursen är utformad för att ge dig ett försprång till Java-programmering och träna dig för både kärn- 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 'Nested Class in Java' -bloggen så återkommer vi till dig så snart som möjligt.