Kā Java ieviest ligzdoto klasi?



Šis raksts par ligzdotajām klasēm java palīdzēs jums saprast, kā ieviest ligzdotas klases ar programmas paraugu.

Java valodā klasi var definēt citā klasē, un šādas klases sauc par ligzdotām klasēm. Šīs klases palīdz loģiski grupēt klases, kuras tiek izmantotas tikai vienā vietā. Tas palielina iekapsulēšanas izmantošanu un rada vieglāk lasāmu un uzturamu kodu. Šis emuārs vietnē “Nested Class in Java” sniegs ātru ievadu sadaļā ligzdotajām klasēm . Tālāk ir norādītas šajā emuārā aplūkotās tēmas:

hashmap ieviešana Java kodā

Ligzdota klase Java valodā

The klasē klasē rakstīto sauc par ligzdoto klasi, bet klasi, kurā atrodas iekšējā klase, sauc par ārējo. Šeit ir daži punkti, kas jāatceras ligzdotajām klasēm Java -





  • Ligzdotas klases darbības joma ir ierobežota ar tās norobežojošo klasi.
  • Ligzdotai klasei ir piekļuve tās klases dalībniekiem, kurā tā ir ievietota. Bet norobežojošā klase nevar piekļūt ligzdotās klases dalībniekiem.
  • Ligzdota klase ir tās norobežojošais klases loceklis.
  • Ligzdotu klasi var pasludināt par publisku, privātu, aizsargātu vai privātu paketi.

Ligzdotu klašu veidi

Iekšējā / nestacionārā ligzdotā klase: Java valodā statiskās klases ir drošības mehānisms. Klasi nevar saistīt ar piekļūt rediģēšanai privāta, bet, ja klase ir citas klases dalībniece, tad statisko klasi var padarīt privātu.

Iekšējo klašu veidi un mīnus



  • Iekšējā klase
  • Metode-vietējā iekšējā klase
  • Anonīma iekšējā klase

Iekšējā klase

Lai izveidotu iekšējo klasi, jums vienkārši jāuzraksta klase klases ietvaros. Iekšējā klase var būt privāta, kurai nevar piekļūt no objekts ārpus klases. Zemāk ir programma iekšējās klases izveidošanai. Šajā piemērā iekšējā klase tiek padarīta privāta un tai piekļūst, izmantojot metodi.

klase Outer_Test {int num // iekšējās klases privātā klase Inner_Test {public void print () {System.out.println ('Šī ir mūsu iekšējā klase')}}} // Piekļuve iekšējai klasei no metodes void display_Inner () { Inner_Test internal = new Inner_Test () internal.print ()}} public class My_class {public static void main (String args []) {// Ārējās klases instancēšana Outer_Test external = new Outer_Test () // Piekļuve metodei display_Inner () . external.display_Inner ()}}

Rezultāts
Ligzdota klases iekšējā- Edureka

Metode-vietējā iekšējā klase

Java valodā klasi var rakstīt a ietvaros un tas ir lokāls tips. Līdzīgi lokālajiem mainīgajiem, arī iekšējās klases darbības joma ir ierobežota. Metode-vietējā iekšējā klase ir iekļauta tikai tajā metodē, kurā ir definēta iekšējā klase. Zemāk esošajā programmā parādīts, kā izmantot metodi-vietējā iekšējā klase.



public class Outerclass {// ārējās klases instances metode void my_Method () {int num = 1001 // method-local iekšējās klases klase StarInner_Test {public void print () {System.out.println ('Šī ir zvaigžņu iekšējā klase' + num)}} // iekšējās klases beigas // Piekļuve iekšējai klasei StarInner_Test star = new StarInner_Test () star.print ()} public static void main (String args []) {Outerclass external = new Outerclass () external. mana_metode ()}}

Rezultāts

Anonīma iekšējā klase

Anonīma iekšējā klase ir iekšējā klase, kas deklarēta bez klases nosaukuma. Anonīmā iekšējā klasē mēs to vienlaikus deklarējam un instancējam. Tos parasti izmanto, ja jums ir nepieciešams ignorēt klases vai saskarnes metodi. Zemāk redzamā programma parāda, kā izmantot anonīmu iekšējo klasi -

abstraktā klase AnonymousInnerTest {public abstract void mytest ()} public class Outer_class {public static void main (String args []) {AnonymousInnerTest internal = new AnonymousInnerTest () {public void mytest () {System.out.println ('Šis ir anonīmas iekšējās pārbaudes klases piemērs ')}} internal.mytest ()}}

Izeja-

Statiskā ligzdotā klase: TO ir ligzdota klase, kas ir statiska ārējās klases dalībniece. Atšķirībā no iekšējās klases, statiskā ligzdotā klase nevar piekļūt ārējās klases dalībnieku mainīgajiem, jo ​​statiskajai ligzdotajai klasei nav nepieciešams ārējās klases eksemplārs. Tādējādi ar OuterClass nav atsauces uz ārējo klasi. Šo. Statiskās ligzdotās klases sintakse ir -

klase MyOuter {statiskā klase Nested_Test {}}

Statiskās ligzdotās klases piemērs

public class Outer {statiskā klase Nested_Test {public void my_method () {System.out.println ('Šī ir Edureka ligzdotā testa klase')}} public static void main (String args []) {Outer.Nested_Test nested = new Outer. Nested_Test () nested.my_method ()}}

Rezultāts

Atšķirība starp statiskām un nestatiskām ligzdotām klasēm

Statiskām ligzdotajām klasēm nav tiešas piekļuves citiem norobežojošās klases dalībniekiem. Tā kā tam ir statika, tam caur objektu ir jāpiekļūst tās norobežojošās klases dalībniekiem, kas nav statiski, kas nozīmē, ka tas nevar tieši atsaukties uz tās norobežojošās klases nestacionārajiem dalībniekiem. Šī ierobežojuma dēļ statiskās ligzdotās klases tiek reti izmantotas.

Nestatiskām ligzdotajām klasēm ir piekļuve visiem tās ārējās klases pārstāvjiem, un tās var uz tām atsaukties tieši tāpat, kā to dara citi ārējās klases nestacionārie dalībnieki.

Pirms mēs nonākam pie šī raksta beigām, apskatīsim dažus galvenos punktus.

Galvenie punkti, kas jāatceras

  • Iekšējā klase tiek uzskatīta par parastu klases biedru.
  • Tā kā iekšējā klase ir ārējās klases locekle, jūs varat savai iekšējai klasei izmantot dažādus piekļuves modifikatorus, piemēram, aizsargātus, privātus.
  • Tā kā Nested klase ir tās norobežojošās klases dalībniece, varat to izmantot. (dot) apzīmējums, lai piekļūtu ligzdotajai klasei un tās dalībniekiem.
  • Izmantojot ligzdotu klasi, kods ir lasāmāks un labāks iekapsulēšana .
  • Iekšējai klasei ir piekļuve citiem ārējās klases pārstāvjiem, pat ja viņi ir pasludināti par privātiem.

Ar to mēs esam nonākuši pie šī emuāra par Java ligzdotajām klasēm. Ja vēlaties uzzināt vairāk par Java, pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka Java J2EE un SOA apmācības un sertifikācijas kurss ir paredzēts studentiem un profesionāļiem, kuri vēlas būt Java izstrādātāji. Kurss ir paredzēts, lai dotu jums sākumu Java programmēšanā un apmācītu gan Java, gan uzlabotas koncepcijas, kā arī dažādas Java struktūras, piemēram, Hibernate & Spring.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra “Nested Class in Java” komentāru sadaļā, un mēs pēc iespējas ātrāk sazināsimies ar jums.