Kā Java iekšējo klasi ieviest?



Iekšējā klase java nozīmē vienu klasi, kas ir citas klases locekle. Šis raksts palīdzēs jums atšķetināt šo klasi.

Iekšējā klase java nozīmē vienu klasi, kas ir citas klases locekle. In , ir dažādi iekšējo klašu veidi. Šis raksts palīdzēs jums atšķetināt visas šīs nodarbības. Tālāk sniegtie norādījumi tiks detalizēti apspriesti,

Ļaujiet mums sākt darbu ar šo Java iekšējās klases rakstu,





Iekšējā klase Java

Ligzdota iekšējā klase

Šai klasei ir piekļuve jebkurai ārējās klases privātās instances vērtībai. Rakstīt vienu klasi citā klasē ir atļauts arī Java valodā. Klase, kas rakstīta, ir zināma ligzdota klase, un klase, kurai pieder iekšējā klase, ir pazīstama kā ārējā klase.



Sintakse

klases ārējā vieta {klases iekšējā vieta {}}

Piemērs

Zemāk sniegtajā piemērā mēs padarām iekšējo klasi privātu un piekļūstam klasei ar metodes palīdzību.



klase Outer_place {int num private class Inner_place {public void print () {System.out.println ('Tā ir iekšējā klase')}} void display_Inner () {Inner_place internal = new Inner_place () internal.print ()}} public class My_class {public static void main (String args []) {Outer_place external = new Outer_place () external.display_Inner ()}}

Rezultāts

Rezultāts - Java iekšējā klase - Edureka

Šeit Ārējā vieta ir ārējā klase, un Iekšējo vietu sauc par iekšējo klasi.

Pārejot uz šo Java iekšējās klases rakstu,

Piekļuve privātiem deputātiem

Iekšējās klases tiek izmantotas, lai piekļūtu arī klases privātajiem dalībniekiem. Pieņemsim, ka ir klase, kurā privāti dalībnieki var tām piekļūt. Tagad uzrakstiet klases iekšējo klasi un piekļūstiet privātajiem dalībniekiem, izmantojot iekšējās klases metodi.

Šeit ir piemērs,

class Outer_place {private int num = 162 class Inner_place {public int getNum () {System.out.println ('Tā ir iekšējās klases getnum metode:') return num}}} public class My_class {public static void main (String args []) {Ārējā_vieta ārējā = jauna Ārējā_vieta () Ārējā_vieta.iekšējā_vieta iekšējā = ārējā.jaunā Iekšējā_vieta () System.out.println (internal.getNum ())}}

Rezultāts

Turpinot,

Vietējo iekšējo klašu metode

Java valodā metodē varat rakstīt klasi, kas būs pazīstama kā vietējais tips. Tāpat kā visi lokālie mainīgie, arī iekšējās klases darbības joma ir ierobežota.

Piemērs

Šis piemērs parādīs, kā tiek ieviesta metode vietējā iekšējā klase.

public class Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ('metode iekšējām klasēm' + numurs)}} MethodInner_place internal = new MethodInner_place () internal.print ( )} public static void main (String args []) {Outerplace external = new Outerplace () external.my_Method ()}}

Rezultāts

Pārejot uz šo Java iekšējās klases rakstu,

Anonīms Iekšējā klase

Jebkuru iekšējo klasi, kas tiek deklarēta bez klases nosaukuma, sauc par anonīmu iekšējo klasi. Anonīmu iekšējo klašu gadījumā mēs to instancējam un deklarējam vienlaikus.

Ikreiz, kad mēs vēlamies ignorēt klases metodi vai saskarni, mēs izmantojam šo klasi.

Sintakse

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

Piemērs

dziļa kopija vs sekla kopija java
abstraktā klase 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 (anonīma piemērs iekšējā klase ')}} iekšējā.metode ()}}

Rezultāts

Pārejot uz šo Java iekšējās klases rakstu,

Kā anonīmas iekšējās klases arguments

Šajā gadījumā, ja metode pieņem saskarnes, abstraktās klases vai konkrētās klases objektu, tad mēs varam ieviest saskarni, nodot objektu metodei un paplašināt abstrakto klasi.

Sintakse

obj. metode (jauna klase () {public void do {}})

Piemērs

// saskarnes interfeiss Ziņojums {String greet ()} public class My_class {// interfeisa ziņojuma objekts tiek pieņemts ar šo metodi public void displayMessage (Message m) {System.out.println (m.greet () + ', piemērs anonīma iekšējā klase kā arguments ')} public static void main (String args []) {// klases instancēšana My_class obj = new My_class () // Anonīmās iekšējās klases nodošana kā arguments obj.displayMessage (new Message () {public String sveiciens () {return 'Hei'}}}}}

Rezultāts

Pārejot uz šo Java iekšējās klases rakstu,

Anonīma norādītās apakšklases iekšējā klase

Avota kods

klases demonstrācija {void show () {System.out.println ('i was in show method of class')}} klase Flavour1Demo {static Demo d = new Demo () {void show () {super.show () System. out.println ('es biju klāt Flavor1Demo klasē')}} public static void main (String [] args) {d.show ()}}

Rezultāts

Pārejot uz šo Java iekšējās klases rakstu,

Anonīma iekšējā klase kā norādīto ieviešana Saskarne

Avota kods

klase Flavor2Demo {// klase, kas ievieš Hello saskarnes statisko Sveiki h = new Sveiki () {public void show () {System.out.println ('es biju klāt anonīmā klasē')}} public static void main (String [] args) {h.show ()}} saskarne Sveiki {void show ()}

Rezultāts

Pārejot uz šo Java iekšējās klases rakstu,

Statiskās ligzdotās klases

Šīs klases tehniski nav pazīstamas kā iekšējās klases. Šīs klases ir līdzīgas ārējās klases statiskajam loceklim. Statiskai ligzdotajai klasei nav piekļuves ārējās klases mainīgajiem un metodēm. Mums nav jāpiedalās ārējā klasē, tam var piekļūt tieši, izmantojot statiskos locekļus.

Sintakse

Klase ārējā {Statiskā klase ligzdots_piemērs {}}

Piemērs

public class Outer {statiskā klase Nested_Example {public void my_method () {System.out.println ('Tā ir ligzdotā klase')}} public static void main (String args []) {Outer.Nested_Example nested = new Outer.Nested_Example () ligzdota.mans_metode ()}}

Rezultāts

Tādējādi mēs esam nonākuši pie šī raksta beigām. Ja vēlaties uzzināt vairāk,pārbaudiet Autors: uzticams tiešsaistes mācību uzņēmums Edureka. Edureka Java J2EE un SOA apmācības un sertifikācijas kurss ir paredzēts, lai apmācītu jūs gan galvenajiem, gan uzlabotajiem Java jēdzieniem kopā ar dažādiem Java ietvariem, piemēram, Hibernate & Spring.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī raksta komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.