U Javi se klasa može definirati u drugoj klasi i takve su klase poznate kao ugniježđene klase. Ovi ti predmeti pomažu u logičnom grupiranju predavanja koja se koriste samo na jednom mjestu. To povećava upotrebu enkapsulacije i stvara čitljiviji i održiviji kôd. Ovaj blog na temu „Ugnježdeni razredi na Javi“ pružit će vam brz i precizan uvod u ugniježđene razrede u . Ispod su teme obrađene na ovom blogu:
- Ugnježđena klasa u Javi
- Vrste ugniježđenih klasa
- Razlika između statičkih i nestatičnih ugniježđenih klasa
- Ključne točke koje treba zapamtiti
Ugnježđena klasa u Javi
The razred napisano unutar klase naziva se ugniježđena klasa, dok se klasa koja sadrži unutarnju klasu naziva vanjska klasa. Ispod je nekoliko točaka koje treba zapamtiti za ugniježđene razrede u Javi -
- Opseg ugniježđene klase ograničen je njenom zatvaračkom klasom.
- Ugniježđena klasa ima pristup članovima klase u kojoj je ugniježđena. Ali, klasa koja zatvara ne može pristupiti članovima ugniježđene klase.
- Ugniježđena klasa je njen član klase koji obuhvaća.
- Ugniježđena klasa može se proglasiti javnom, privatnom, zaštićenom ili privatno-paketnom.
Vrste ugniježđenih klasa
Unutarnja / nestatična ugniježđena klasa: U Javi su ne-statičke klase sigurnosni mehanizam. Klasa se ne može povezati s pristup uređivanju private, ali ako imate klasu kao člana druge klase, onda se ne-statička klasa može učiniti privatnom.
Vrste unutarnjih klasa & minus
- Unutarnja klasa
- Metoda-lokalni Unutarnja klasa
- Anonimni unutarnji razred
Unutarnja klasa
Da biste stvorili unutarnji razred, samo trebate napisati razred unutar razreda. Unutarnja klasa može biti privatna kojoj nije moguće pristupiti s objekt izvan razreda. Ispod je program za stvaranje unutarnjeg razreda. U ovom primjeru, unutarnja klasa postaje privatna i njoj se pristupa putem metode.
class Outer_Test {int num // unutarnja klasa private class Inner_Test {public void print () {System.out.println ('Ovo je naša unutarnja klasa')}}} // Pristup unutarnjoj klasi iz metode void display_Inner () { Inner_Test inner = new Inner_Test () inner.print ()}} javna klasa My_class {public static void main (String args []) {// Instantiranje vanjske klase Outer_Test external = new Outer_Test () // Pristup metodi display_Inner () . external.display_Inner ()}}
Izlaz
postavljanje php-a na Windowsima
Metoda-lokalni Unutarnja klasa
U Javi se klasa može napisati unutar i to je lokalni tip. Slično lokalnim varijablama, opseg unutarnje klase ograničen je unutar metode. Unutarnja klasa s lokalnom metodom ugrađena je samo unutar metode gdje je unutarnja klasa definirana. Program u nastavku pokazuje kako se koristi unutarnja klasa koja se temelji na metodi.
javna klasa Outerclass {// instanca metoda vanjske klase void my_Method () {int num = 1001 // metoda-lokalna klasa klase StarInner_Test {public void print () {System.out.println ('Ovo je zvjezdasta unutarnja klasa' + num)}} // kraj unutarnje klase // Pristup unutarnjoj klasi StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass external = new Outerclass () external. moja_metoda ()}}
Izlaz
lijevanje tipa podataka u javi
Anonimni unutarnji razred
Anonimna unutarnja klasa je unutarnja klasa deklarirana bez naziva klase. U anonimnoj unutarnjoj klasi, mi to istovremeno deklariramo i instanciramo. Obično se koriste kada trebate nadjačati metodu klase ili sučelja. Program u nastavku pokazuje kako se koristi anonimna unutarnja klasa -
apstraktna klasa 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 ('Ovo je primjer anonimne klase unutarnjeg testa ')}} inner.mytest ()}}
Izlaz-
Statična ugniježđena klasa: DO je ugniježđena klasa koja je statički član vanjske klase. Za razliku od unutarnje klase, statička ugniježđena klasa ne može pristupiti varijablama člana vanjske klase jer statička ugniježđena klasa ne zahtijeva instancu vanjske klase. Dakle, nema reference na vanjsku klasu s OuterClass.this. Sintaksa statičke ugniježđene klase je -
klasa MyOuter {statička klasa Nested_Test {}}
Primjer statičke ugniježđene klase
javna klasa Outer {static class Nested_Test {public void my_method () {System.out.println ('Ovo je ugniježđena test klasa Edureka')}} public static void main (String args []) {Outer.Nested_Test ugniježđeno = new Outer. Ugniježđeno_Test () ugniježđeno.moja_metoda ()}}
Izlaz
Razlika između statičkih i nestatičnih ugniježđenih klasa
Statične ugniježđene klase nemaju pristup izravno ostalim članovima zatvorene klase. Budući da je statičan, mora pristupiti nestatičnim članovima svoje klase koja se zatvara putem objekta što znači da se ne može izravno pozivati na nestatične članove svoje klase koja obuhvata. I zbog ovog ograničenja, statične ugniježđene klase rijetko se koriste.
Nestatične ugniježđene klase imaju pristup svim članovima vanjske klase i mogu se na njih izravno pozivati na isti način na koji to čine i drugi nestatični članovi vanjske klase.
Prije nego što dođemo do kraja ovog članka, pogledajmo nekoliko ključnih točaka.
Ključne točke koje treba zapamtiti
- Unutarnja klasa tretira se kao redoviti član klase.
- Budući da je unutarnja klasa pripadnica vanjske klase, na svoju unutarnju klasu možete primijeniti različite modifikatore pristupa poput zaštićenih, privatnih.
- Budući da je ugniježđena klasa član njezine zatvorene klase, možete je koristiti. (točka) notacija za pristup ugniježđenoj klasi i njezinim članovima.
- Korištenje ugniježđene klase čini vaš kôd čitljivijim i pruža bolju inkapsulacija .
- Unutarnja klasa ima pristup ostalim članovima vanjske klase, čak i ako su proglašeni privatnima.
Ovime smo došli do kraja ovog bloga o ugniježđenim klasama u Javi. Ako želite saznati više o Javi, pogledajte Edureka, pouzdane tvrtke za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA dizajniran je za studente i profesionalce koji žele biti programer Java. Tečaj je dizajniran da vam pruži početnu prednost u Java programiranju i osposobi vas za osnovne i napredne Java koncepte zajedno s raznim Java okvirima poput Hibernate & Spring.
kako napisati skener u javi -
Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga 'Ugnježđena klasa na Javi', a mi ćemo vam se javiti u najkraćem mogućem roku.