Jak implementovat vnitřní třídu v Javě?



Vnitřní třída v Javě znamená jednu třídu, která je členem jiné třídy. Tento článek vám pomůže tuto třídu rozluštit.

Vnitřní třída v Javě znamená jednu třídu, která je členem jiné třídy. v , existují různé typy vnitřních tříd. Tento článek vám pomůže rozluštit všechny tyto třídy. Následující ukazatele budou podrobně probrány,

Pojďme tedy začít s tímto článkem Inner Class In Java,





Vnitřní třída v Javě

Vnořená vnitřní třída

Tato třída má přístup k jakékoli hodnotě soukromé instance vnější třídy. Psaní jedné třídy v jiné třídě je povoleno také v Javě. Třída zapsaná uvnitř je známá vnořená třída a třída, která obsahuje vnitřní třídu, se nazývá vnější třída.



Syntax

třída vnější místo {třída vnitřní místo {}}

Příklad

V níže uvedeném příkladu děláme vnitřní třídu soukromou a přistupujeme ke třídě pomocí metody.



třída Outer_place {int num private class Inner_place {public void print () {System.out.println ('It is an inner class')}} void display_Inner () {Inner_place internal = new Inner_place () inner.print ()}} public class My_class {public static void main (String args []) {Vnější_místo vnější = nové Vnější_místo () vnější.display_Inner ()}}

Výstup

Výstup - vnitřní třída v Javě - Edureka

Zde je vnější místo vnější třída a vnitřní místo se nazývá vnitřní třída.

Pokračování s tímto článkem Inner Class In Java,

Přístup k soukromým členům

Vnitřní třídy se používají také pro přístup k soukromým členům třídy. Předpokládejme, že existuje třída, která má soukromé členy, aby k nim měla přístup. Nyní napište vnitřní třídu v rámci třídy a přístup k soukromým členům z metody v rámci vnitřní třídy.

Zde je příklad,

třída Outer_place {private int num = 162 třída Inner_place {public int getNum () {System.out.println ('Je to metoda getnum vnitřní třídy:') return num}}} veřejná třída My_class {public static void main (String args []) {Outer_place vnější = nový Outer_place () Outer_place.Inner_place vnitřní = vnější.new Inner_place () System.out.println (internal.getNum ())}}

Výstup

Posouvat se,

Metoda místních vnitřních tříd

V Javě můžete v rámci metody napsat třídu, která bude známá jako místní typ. Stejně jako všechny místní proměnné je rozsah vnitřní třídy v rámci metody omezen.

sloučit třídicí algoritmus c ++

Příklad

převést řetězec na pole php

Následující příklad ukáže, jak je implementována metoda místní vnitřní třídy.

public class Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ('method for internal classes' + num)}} MethodInner_place inner = new MethodInner_place () inner.print ( )} public static void main (String args []) {Vnější místo vnější = nové Outerplace () vnější.my_Method ()}}

Výstup

Pokračování s tímto článkem Inner Class In Java,

Anonymní vnitřní třída

Jakákoli vnitřní třída, která je deklarována bez názvu třídy, se nazývá anonymní vnitřní třída. V případě anonymních vnitřních tříd to instancujeme a deklarujeme současně.

Kdykoli chceme přepsat metodu třídy nebo rozhraní, použijeme tuto třídu.

Syntax

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

Příklad

abstract class AnonymousInner {public abstract void mymethod ()} public class Outer_class {public static void main (String args []) {AnonymousInner internal = new AnonymousInner () {public void mymethod () {System.out.println ('příklad anonymního vnitřní třída ')}} inner.mymethod ()}}

Výstup

Pokračování s tímto článkem Inner Class In Java,

Jako argument anonymní vnitřní třídy

V tomto Pokud metoda přijímá objekt rozhraní, abstraktní třídu nebo konkrétní třídu, jsme schopni implementovat rozhraní, předat objekt metodě a rozšířit abstraktní třídu.

Syntax

obj. metoda (new class () {public void do {}})

Příklad

// interface interface Message {String greet ()} public class My_class {// object of interface message is accepted by this method public void displayMessage (Message m) {System.out.println (m.greet () + ', example of anonymní vnitřní třída jako argument ')} public static void main (String args []) {// Vytvoření instance třídy My_class obj = new My_class () // Předání anonymní vnitřní třídy jako argument obj.displayMessage (new Message () {public Řetězec pozdravit () {návrat 'Hej'}})}}

Výstup

Pokračování s tímto článkem Inner Class In Java,

Anonymní vnitřní třída stanovené podtřídy

Zdrojový kód

třída 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 ('byl jsem přítomen ve třídě Flavor1Demo')}} public static void main (String [] args) {d.show ()}}

Výstup

Pokračování s tímto článkem Inner Class In Java,

Anonymní vnitřní třída jako implementátor specifikovaných Rozhraní

Zdrojový kód

třída Flavor2Demo {// třída, která implementuje 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 ()}} rozhraní Dobrý den {void show ()}

Výstup

java převést dvojité na celé číslo

Pokračování s tímto článkem Inner Class In Java,

Statické vnořené třídy

Tyto třídy nejsou technicky známé jako vnitřní třídy. Tyto třídy jsou podobné statickému členu vnější třídy. Statická vnořená třída nemá žádný přístup k proměnným a metodám vnější třídy. Nepotřebujeme vytvořit instanci vnější třídy, lze k ní přistupovat přímo pomocí statických členů.

Syntax

Vnější třída {Statická třída nested_example {}}

Příklad

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 ()}}

Výstup

Tak jsme dospěli ke konci tohoto článku. Pokud se chcete dozvědět více,podívejte se na Edureka, důvěryhodná online vzdělávací společnost. Výcvikový a certifikační kurz Edureka Java J2EE a SOA je navržen tak, aby vás vyškolil jak pro základní, tak pro pokročilé koncepty Java spolu s různými rámci Java jako Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto článku a my se vám ozveme co nejdříve.