Ako implementovať vnorenú triedu v Jave?



Tento článok o vnorenej triede v jave vám pomôže pochopiť, ako implementovať vnorené triedy pomocou ukážkového programu.

V Jave je možné triedu definovať v rámci inej triedy a tieto triedy sa označujú ako vnorené triedy. Tieto triedy vám pomôžu logicky zoskupiť triedy, ktoré sa používajú iba na jednom mieste. To zvyšuje použitie zapuzdrenia a vytvára čitateľnejší a udržiavateľnejší kód. Tento blog o „Vnorenej triede v Jave“ vám poskytne rýchly úvod do vnorených tried v . Ďalej sú uvedené témy, ktorým sa tento blog venuje:

Vnorená trieda v Jave

The trieda napísané v rámci triedy sa nazýva vnorená trieda, zatiaľ čo trieda, ktorá obsahuje vnútornú triedu, sa nazýva vonkajšia trieda. Ďalej uvádzame niekoľko bodov, ktoré si musíte pamätať pre vnorené triedy v prostredí Java -





  • Rozsah vnorenej triedy je ohraničený svojou uzatvárajúcou triedou.
  • Vnorená trieda má prístup k členom triedy, v ktorej je vnorená. Uzatváracia trieda ale nemôže získať prístup k členom vnorenej triedy.
  • Vnorená trieda je jej obklopujúcim členom triedy.
  • Vnorená trieda môže byť vyhlásená za verejnú, súkromnú, chránenú alebo balík-súkromnú.

Typy vnorených tried

Vnútorná / nestatická vnorená trieda: V Jave sú nestatické triedy bezpečnostným mechanizmom. Triedu nemožno priradiť k prístup upraviť súkromné, ale ak máte triedu ako člena inej triedy, môže sa statická trieda zmeniť na súkromnú.

Typy vnútorných tried a mínus



  • Vnútorná trieda
  • Metodická miestna vnútorná trieda
  • Anonymná vnútorná trieda

Vnútorná trieda

Na vytvorenie vnútornej triedy stačí napísať triedu v rámci triedy. Vnútorná trieda môže byť súkromná, ku ktorej nemožno získať prístup z domény objekt mimo triedy. Nižšie je uvedený program na vytvorenie vnútornej triedy. V tomto príklade sa vnútorná trieda zmení na súkromnú a k triede sa pristupuje prostredníctvom metódy.

trieda Outer_Test {int num // vnútorná trieda súkromná trieda Inner_Test {public void print () {System.out.println ('Toto je naša vnútorná trieda')}}} // Prístup k vnútornej triede z metódy void display_Inner () { Inner_Test internal = new Inner_Test () inner.print ()}} verejná trieda My_class {public static void main (String args []) {// Vytvorenie inštancie vonkajšej triedy Outer_Test vonkajší = nový Outer_Test () // Prístup k metóde display_Inner () . vonkajší.display_Inner ()}}

Výkon
Vnorená trieda vnútorná- Edureka

Metodická miestna vnútorná trieda

V jazyku Java môže byť trieda napísaná v rámci a a je to lokálny typ. Podobne ako v prípade lokálnych premenných, aj v rámci metódy je rozsah vnútornej triedy obmedzený. Metóda-lokálna vnútorná trieda je začlenená iba do metódy, kde je definovaná vnútorná trieda. Nižšie uvedený program ukazuje, ako používať miestnu vnútornú triedu s metódou.



public class Outerclass {// metóda inštancie vonkajšej triedy void my_Method () {int num = 1001 // metóda-miestna trieda vnútornej triedy StarInner_Test {public void print () {System.out.println ('Toto je vnútorná trieda hviezdy' + num)}} // koniec vnútornej triedy // Prístup k vnútornej triede StarInner_Test star = nový StarInner_Test () star.print ()} public static void main (String args []) {Vonkajšia trieda vonkajšia = nová Vonkajšia trieda () vonkajšia. moja_metoda ()}}

Výkon

ako používať cloudovú platformu google

Anonymná vnútorná trieda

Anonymná vnútorná trieda je vnútorná trieda deklarovaná bez názvu triedy. V anonymnej vnútornej triede to deklarujeme a vytvárame súčasne. Spravidla sa používajú, keď potrebujete prepísať metódu triedy alebo rozhrania. Nasledujúci program ukazuje, ako používať anonymnú vnútornú triedu -

abstraktná trieda AnonymousInnerTest {public abstract void mytest ()} verejná trieda Outer_class {public static void main (String args []) {AnonymousInnerTest internal = new AnonymousInnerTest () {public void mytest () {System.out.println ('Toto je príklad anonymnej triedy vnútorného testu ')}} internal.mytest ()}}

Výkon-

Statická vnorená trieda: TO je vnorená trieda, ktorá je statickým členom vonkajšej triedy. Na rozdiel od vnútornej triedy nemôže statická vnorená trieda získať prístup k členským premenným vonkajšej triedy, pretože statická vnorená trieda nevyžaduje inštanciu vonkajšej triedy. Preto neexistuje žiadny odkaz na vonkajšiu triedu s OuterClass.this. Syntax statickej vnorenej triedy je -

trieda MyOuter {statická trieda Nested_Test {}}

Príklad statickej vnorenej triedy

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

Výkon

java rozdiel medzi hashmapou a hashtable

Rozdiel medzi statickými a nestatickými vnorenými triedami

Statické vnorené triedy nemajú priamy prístup k ostatným členom uzatvárajúcej triedy. Keďže je statický, musí pristupovať k nestatickým členom svojej obklopujúcej triedy prostredníctvom objektu, čo znamená, že nemôže priamo odkazovať na nestatických členov svojej obklopujúcej triedy. A kvôli tomuto obmedzeniu sa statické vnorené triedy zriedka používajú.

Nestatické vnorené triedy majú prístup ku všetkým členom svojej vonkajšej triedy a môžu na ne odkazovať rovnakým spôsobom, ako to robia ostatní nestatickí členovia vonkajšej triedy.

Predtým, ako sa dostaneme na koniec tohto článku, pozrime sa na niekoľko kľúčových bodov.

Kľúčové body, ktoré si treba pamätať

  • S vnútornou triedou sa zaobchádza ako s riadnym členom triedy.
  • Pretože vnútorná trieda je členom vonkajšej triedy, môžete na svoju vnútornú triedu použiť rôzne modifikátory prístupu, napríklad chránené, súkromné.
  • Pretože vnorená trieda je členom jej priloženej triedy, môžete použiť. (bodková) notácia, aby sa získal prístup k vnorenej triede a jej členom.
  • Používanie vnorenej triedy robí váš kód čitateľnejším a poskytuje lepší zapuzdrenie .
  • Vnútorná trieda má prístup k ostatným členom vonkajšej triedy, aj keď sú vyhlásení za súkromné.

Týmto sa dostávame na koniec tohto blogu o vnorených triedach v Jave. Ak sa chcete dozvedieť viac informácií o prostredí Java, pozrite si stránku autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Výcvikový a certifikačný kurz Edureka Java J2EE a SOA je určený pre študentov a profesionálov, ktorí chcú byť vývojármi Java. Kurz je navrhnutý tak, aby vám dal náskok v programovaní v Jave a naučil vás základné aj pokročilé koncepty Javy spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to, prosím, v sekcii komentárov tohto blogu „Vnorená trieda v Jave“ a my sa vám ozveme čo najskôr.