java - indre klasser

, indlejrede klasser i java, ligesom metoderne, variabler i en klasse, også kan have en anden klasse som medlem.skrive en klasse i et andet, er tilladt i java.klasse skrevet i kaldes, indlejrede klasse, og den klasse, der har indre klasse, der hedder, ydre klasse,., syntaks, syntaks for at skrive en indlejrede klasse er anført nedenfor.her i klassen, outer_demo, er den ydre klasse og kategori, inner_demo, er den indlejrede klasse.,, klasse outer_demo (klasse nested_demo {}}, indlejrede klasser er opdelt i to typer:,,,, ikke - statisk indlejrede klasser: disse er ikke statisk, medlemmer af en klasse.,,,, statisk indlejrede klasser: disse er de statiske medlemmer af en klasse,.,,,, indre klasser (ikke - statisk indlejrede klasser), indre klasser er en beskyttelsesmekanisme på java.vi kender en klasse kan være forbundet med adgangen transformer, private, men hvis vi har klasse som medlem af anden klasse, så den indre klasse kan være private.og det er også vant til at få adgang til private medlemmer af en klasse.indre klasser i tre kategorier afhængigt af, hvordan og hvor de definerer dem.de er:,, indre klasse, metode lokale indre classlass, anonyme indre klasse, indre klasse, skabe et indre klasse er ganske enkel.du skal bare skrive en klasse inden for en time.i modsætning til en klasse, en indre klasse kan være private, og når de erklærer en indre klasse private, kan det ikke være adgang til dem fra en genstand uden for den klasse, i betragtning under programmet til at skabe et indre klasse og få adgang til det.i det nævnte eksempel, vi gør det indre klasse private og få adgang til klasse gennem en metode,.,, klasse outer_demo (int nam; //indre klasse klasse inner_demo {{offentlige eller private print() {system. println ("det er en indre klasse")) //adgang til det indre af klasse fra den metode, display_inner() inden for ugyldig (inner_demo indre = nye inner_demo(); indre. print();}} offentlige klasse my_class {offentlige statisk tomrum vigtigste (string - args []) (//instantiating den ydre klasse outer_demo ydre = nye outer_dem(); //adgang til display_inner() metode.ydre. display_inner();}}, her kan man konstatere, at outer_demo, er den ydre klasse, inner_demo, er den indre klasse, display_inner(), er den metode, som vi er instantiating i den indre klasse, og denne metode er anvendt fra den vigtigste metode.,, hvis du udarbejde og gennemføre ovennævnte program, du vil få følgende resultat. det er en indre klasse., adgang til private medlemmer, som tidligere nævnt, indre klasser, også anvendes til at få adgang til private medlemmer af en klasse.hvis et klasse har private medlemmer for at få adgang til dem.skriv en indre klasse i, returnerer den private medlemmer fra en metode i det indre af klasse, sige, getvalue(), og endelig fra en anden klasse (fra, som de ønsker at få adgang til de private medlemmer) til getvalue() metode for den indre klasse.,, at instantiate indre klasse, først skal du instantiate den ydre klasse.derefter ved hjælp af genstanden for den ydre klasse, kan du instantiate indre klasse som vist nedenfor. outer_demo ydre = nye outer_demo(); outer_demo.inner_demo indre = outer.new inner_demo();, følgende program viser, hvor adgang til private medlemmer af en klasse ved hjælp af indre klasse, klasse outer_demo (//private variabel i den ydre klasse private int nam = 175; //indre klasse offentlige klasse inner_demo {offentlige int getnum() {system. println ("det er getnum metode for den indre klasse"); tilbage num.}}} offentlige klasse my_class2 {offentlige statisk tomrum vigtigste (string - args []) (//instantiating den ydre klasse outer_demo ydre = nye outer_demo(); //instantiating indre klasseouter_demo.inner_demo indre = outer.new inner_demo(); system. println (indre. getnum())), hvis du udarbejde og gennemføre ovennævnte program, får man følgende resultat.værdien af nam i klasse prøvning er: 175, metode lokale indre klasse i java, - - kan vi skrive en klasse inden for en metode, og dette vil være en lokal type.ligesom de lokale variabler, omfanget af den indre klasse er begrænset inden for den metode, en metode, lokale indre klasse kan være instantierede kun inden for rammerne af den metode, hvor de indre klasse er defineret.følgende program viser, hvordan vi kan anvende en metode, lokale indre klasse. offentlige klasse outerclass (//instans metode til den ydre klasse tomrum my_method() (int nam = 23; //metode lokale indre, klasse methodinner_demo (offentlige eller print() {system. println ("det er metode indre klasse a + num);}} ////////////////adgang til udgangen af indre klasse indre klasse methodinner_demo indre = nye methodinner_demo(); indre. print();} offentlige statisk tomrum vigtigste (string - args []) (outerclass ydre = nye outerclass(); ydre. my_method();}}, hvis du udarbejde og gennemføre ovennævnte program, får man følgende resultat., det er metode indre klasse 23, anonyme indre klasse, en kro- klasse erklæret uden klasse navn er kendt som en anonym indre klasse.i tilfælde af anonyme indre klasser, erklærer vi, og instantiate dem på samme tid.generelt set er de anvendes, når du har brug for at omgå den metode for en klasse - eller en grænseflade.syntaksen af en anonym indre klasse er som følger:, anonymousinner an_inner = nye anonymousinner() (offentlige eller my_method() {......................}}; følgende program viser, hvordan til at tilsidesætte den metode, en klasse ved hjælp af anonyme indre klasse., abstrakt klasse, anonymousinner {offentlige abstrakt tomrum mymethod();} offentlige klasse outer_class {offentlige statisk tomrum vigtigste (string - args []) (anonymousinner indre = nye anonymousinner() (offentlige eller mymethod() {system. println ("dette er et eksempel på anonyme indre klasse");}}; indre. mymethod();}}, hvis du udarbejde og gennemføre ovennævnte program, får man følgende resultat. dette er et eksempel på anonyme indre klasse, på samme måde, kan du omgå metoder i konkrete klasse - som grænseflade ved hjælp af en anonym indre klasse.,, anonyme indre klasse som argument, genhvis en metode generelt accepterer et objekt for en grænseflade, en abstrakt klasse, eller konkrete klasse, så vi kan gennemføre den grænseflade, udvide abstrakt klasse, og ræk mig imod den metode.hvis det er en klasse, så kan vi direkte videregive det til metoden.,, men i alle tre sager, du kan få en anonym indre klasse til den metode.her er syntaks passerer en anonym indre klasse som en metode argument:, mål nr. my_method (nye my_class() (offentlige eller do() {......}}), følgende program viser, hvordan vi kan give en anonym indre klasse som en metode argument. //- grænseflade besked {snor greet();} offentlige klasse my_class (//metode, som accepterer genstand for grænseflade besked offentlige tomrum displaymessage (besked m) (system. println (m. greet(). "dette er et eksempel på anonyme indre calss som argument");} offentlige statisk tomrum vigtigste (string - args []) (//instantiating klasse my_class mål = nye my_class(); //passerer en anonym indre klasse som et argument i mål nr. displaymessage (nye message() {offentlige snor greet() {tilbage "goddag".))), hvis du udarbejde og gennemføre ovennævnte program, det giver dig følgeing resultat. det er et eksempel på anonyme indre klasse som et argument, der satte klasse, en statisk indre klasse er en indlejrede klasse, som er en statisk medlem af den ydre klasse.den kan fås uden instantiating den ydre klasse ved hjælp af andre statiske medlemmer.ligesom statisk medlemmer en statisk indlejrede klasse ikke har adgang til den instans, variabler og metoder til den ydre klasse.syntaksen statiske indlejrede klasse er som følger: klasse myouter (statisk klasse nested_demo {}}, instantiating en statisk indlejrede klasse, er lidt forskellig fra instantiating indvendig klasse.følgende program viser, hvordan man bruger en statisk indlejrede klasse. offentlige klasse ydre (statisk klasse nested_demo (offentlige eller my_method() {system. println ("dette er min indlejrede klasse");}} offentlige statisk tomrum vigtigste (string - args []) (outer.nested_demo indlejrede = nye ydre. nested_demo(); my_method() indlejrede.;), hvis du udarbejde og gennemføre ovennævnte program, får man følgende resultat. det er min indlejrede klasse,

tutorialspoint



Previous:
Next Page: