Kuidas rakendada siseklassi Java-s?



Sisemine klass javas tähendab ühte klassi, mis on teise klassi liige. See artikkel aitab teil selle klassi lahti harutada.

Sisemine klass javas tähendab ühte klassi, mis on teise klassi liige. Sisse , siseklasse on erinevat tüüpi. See artikkel aitab teil kõik need klassid lahti harutada. Järgmisi näpunäiteid arutatakse üksikasjalikult,

Alustagem selle Java-siseklassi artikliga,





Sisemine klass Java-s

Pesastatud siseklass

Sellel klassil on juurdepääs välisklassi mis tahes privaatsete eksemplaride väärtusele. Ühe klassi kirjutamine teises klassis on Java-s ka lubatud. Selles klassis kirjutatud klass on tuntud pesastatud klass ja klass, millel on sisemine klass, on tuntud kui välimine klass.



Süntaks

klassi väliskoht {klassi sisemine koht {}}

Näide

Allpool toodud näites muudame siseklassi privaatseks ja pääseme klassi juurde meetodi abil.



klass Outer_place {int number private class Sisemine_koht {public void print () {System.out.println ('See on sisemine klass')}} void display_Inner () {Sisemine_koha sisemine = uus Sisemine_koht () sisemine.print ()}} avalik klass Minu_klass {avalik staatiline void main (String args []) {Väline_koht väline = uus Väline_koht () välimine.näidiku_Inner ()}}

Väljund

Väljund - Java sisemine klass - Edureka

Siin on väliskoht välisklass ja sisemist kohta siseklass.

Selle siseklassiga Java-artiklis edasi liikumine

Juurdepääs eraliikmetele

Siseklasse kasutatakse ka klassi eraliikmetele juurdepääsuks. Oletame, et on olemas klass, millel on neile juurdepääsemiseks eraliikmed. Kirjutage nüüd klassi sisemine klass ja pääsege privaatsetele liikmetele juurde sisemise klassi meetodi abil.

Siin on näide,

class Outer_place {private int num = 162 class Inner_place {public int getNum () {System.out.println ('See on siseklassi getnumi meetod:') return number}}} public class My_class {public static void main (String args []) {Outer_place external = new Outer_place () Outer_place.Inner_place internal = external.new Inner_place () System.out.println (internal.getNum ())}}

Väljund

Edasi liikudes

Kohalike siseklasside meetod

Java-s saate meetodi sisse kirjutada klassi, mida tuntakse kohaliku tüübina. Nagu kõik lokaalsed muutujad, on ka sisemise klassi ulatus meetodi piires.

Näide

Järgmine näide näitab, kuidas meetodit kohalik siseklass rakendatakse.

public class Outerplace {void my_Method () {int num = 45 class MethodInner_place {public void print () {System.out.println ('meetod sisemistele klassidele' + number)}} MethodInner_place internal = new MethodInner_place () inner.print ( )} public staatiline void main (String args []) {Outerplace external = new Outerplace () external.my_Method ()}}

Väljund

Selle siseklassiga Java-artiklis edasi liikumine

Anonüümne siseklass

Kõiki siseklasse, mis deklareeritakse ilma klassinimeta, nimetatakse anonüümseks siseklassiks. Anonüümsete siseklasside puhul instantsime ja kuulutame selle korraga välja.

Alati, kui tahame klassi meetodi või liidese alistada, kasutame seda klassi.

Süntaks

AnonymousInner obj1 = uus AnonymousInner () {public void meetod () {}}

Näide

abstraktne klass 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üümse näide) siseklass ')}} sisemine.metood ()}}

Väljund

Selle siseklassiga Java-artiklis edasi liikumine

Anonüümse siseklassi argumendina

Kui meetod aktsepteerib liidese objekti, abstraktset klassi või konkreetset klassi, siis saame liidese rakendada, objekti meetodile edasi anda ja abstraktset klassi laiendada.

Süntaks

obj. meetod (uus klass () {public void do {}})

Näide

// liidese liides Sõnum {String greet ()} public class Minu_klass {// liidesesõnumi objekt on selle meetodiga aktsepteeritud public void displayMessage (Sõnum m) {System.out.println (m.greet () + ', näide anonüümne siseklass kui argument ')} public static void main (String args []) {// klassi instantsimine Minu_klass obj = uus Minu_klass () // Anonüümse siseklassi edastamine argumendina obj.displayMessage (uus sõnum () {public Stringi tervitus () {return 'Hei'}}}}}

Väljund

Selle siseklassiga Java-artiklis edasi liikumine

Määratud alaklassi anonüümne siseklass

Lähtekood

klassi demo {void show () {System.out.println ('ma olin klassi show-meetodis')}} klass Flavor1Demo {staatiline Demo d = uus Demo () {void show () {super.show () süsteem. out.println ('ma olin kohal Flavor1Demo klassis')}} public static void main (String [] args) {d.show ()}}

Väljund

r-i kasutamine masinõppeks

Selle siseklassiga Java-artiklis edasi liikumine

Anonüümne siseklass määratletud rakendajana Liides

Lähtekood

klass Flavor2Demo {// klass, mis rakendab tere liidest staatiline Tere h = uus Tere () {public void show () {System.out.println ('i oli kohal anonüümses klassis')}} public staatiline void main (String [] args) {h.show ()}} liides Tere {void show ()}

Väljund

Selle siseklassiga Java-artiklis edasi liikumine

Staatilised pesastatud klassid

Neid klasse ei tunta tehniliselt siseklassidena. Need klassid sarnanevad välisklassi staatilise liikmega. Staatilisel pesastatud klassil puudub juurdepääs välisklassi muutujatele ja meetoditele. Me ei pea välisklassi kiirendama, sellele pääseb juurde otse staatiliste liikmete abil.

Süntaks

Klassi välimine {Staatiline klass pesastatud_näide {}}

Näide

public class Outer {staatiline klass Nested_Example {public void my_method () {System.out.println ('See on sisestatud klass')}} public staatiline void main (String args []) {Outer.Nested_Example nested = new Outer.Nested_Example () pesastatud.minu_meetod ()}}

Väljund

Seega oleme jõudnud selle artikli lõppu. Kui soovite rohkem teada saada,vaadake autor Edureka, usaldusväärne veebipõhine õppefirma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud selleks, et õpetada teid nii Java-põhimõistete kui ka edasijõudnute kontseptsioonide jaoks koos erinevate Java-raamistikega nagu Hibernate & Spring.

Kas teil on meile küsimus? Palun mainige seda selle artikli kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.