Како имплементирати унутрашњу класу у Јави?



Унутрашња класа у јави означава једну класу која је члан друге класе. Овај чланак ће вам помоћи да разоткријете ову класу.

Унутрашња класа у јави означава једну класу која је члан друге класе. У , постоје разне врсте унутрашњих класа. Овај чланак ће вам помоћи да разоткријете све ове часове. Следеће смернице ће бити детаљно размотрене,

Па кренимо са овим чланком о Иннер Цласс Ин Јава,





Унутрашња класа у Јави

Угњежђена унутрашња класа

Ова класа има приступ било којој вредности приватне инстанце спољне класе. Писање једне класе у другу класу такође је дозвољено на Јави. Класа написана унутар је позната угнежђена класа, а класа која садржи унутрашњу класу је позната као спољна класа.



Синтакса

класа изван места {класа изнутра {}}

Пример

У примеру датом у наставку, интерну класу чинимо приватном и приступамо класи помоћу методе.



цласс Оутер_плаце {инт нум привате цласс Иннер_плаце {публиц воид принт () {Систем.оут.принтлн ('То је унутрашња класа')}} воид дисплаи_Иннер () {Иннер_плаце иннер = нев Иннер_плаце () иннер.принт ()}} јавна класа Ми_цласс {публиц статиц воид маин (Стринг аргс []) {Оутер_плаце ектернал = нев Оутер_плаце () ектернал.дисплаи_Иннер ()}}

Оутпут

Излаз - унутрашња класа у Јави - Едурека

Овде је спољашње место спољна класа, а унутрашње место се назива унутрашња класа.

Настављајући са овим чланком о Иннер Цласс ин Јава,

Приступ приватним члановима

Унутрашње класе се користе и за приступ приватним члановима класе. Претпоставимо да постоји класа која има приватне чланове који би им могли приступити. Сада напишите унутрашњу класу унутар класе и приступите приватним члановима из методе унутар унутрашње класе.

Ево примера,

цласс Оутер_плаце {привате инт нум = 162 цласс Иннер_плаце {публиц инт гетНум () {Систем.оут.принтлн ('То је гетнум метода унутрашње класе:') ретурн нум}}} јавна класа Ми_цласс {публиц статиц воид маин (Стринг аргс []) {Оутер_плаце ектернал = нев Оутер_плаце () Оутер_плаце.Иннер_плаце иннер = ектернал.нев Иннер_плаце () Систем.оут.принтлн (иннер.гетНум ())}}

Оутпут

Идемо даље,

Метод локалних унутрашњих часова

У Јави можете да напишете класу у оквиру методе која ће бити позната као локални тип. Као и све локалне променљиве, опсег унутрашње класе је ограничен унутар методе.

Пример

Следећи пример ће показати како је имплементирана локална унутрашња класа методе.

ц ++ позив референцом
јавна класа Оутерплаце {воид ми_Метход () {инт нум = 45 цласс МетходИннер_плаце {публиц воид принт () {Систем.оут.принтлн ('метода за унутрашње класе' + нум)}} МетходИннер_плаце иннер = нев МетходИннер_плаце () иннер.принт ( )} публиц статиц воид маин (Стринг аргс []) {Оутерплаце ектернал = нев Оутерплаце () ектернал.ми_Метход ()}}

Оутпут

Настављајући са овим чланком о Иннер Цласс ин Јава,

Анонимни Унутрашњи час

Свака унутрашња класа која је декларисана без назива класе назива се анонимна унутрашња класа. У случају анонимних унутрашњих класа, истовремено их израђујемо и декларишемо.

Кад год желимо да заменимо метод класе или интерфејс, користимо ову класу.

Синтакса

АнонимоусИннер обј1 = нови АнонимоусИннер () {јавна воид метода () {}}

Пример

апстрактна класа АнонимоусИннер {публиц абстрацт воид миметход ()} публиц цласс Оутер_цласс {публиц статиц воид маин (Стринг аргс []) {АнонимоусИннер иннер = нев АнонимоусИннер () {публиц воид миметход () {Систем.оут.принтлн ('пример анонимне унутрашња класа ')}} иннер.миметход ()}}

Оутпут

Настављајући са овим чланком о Иннер Цласс ин Јава,

Као аргумент анонимне унутрашње класе

У овом случају, ако метода прихвати објекат интерфејса, апстрактну класу или конкретну класу, тада смо у могућности да имплементирамо интерфејс, проследимо објекат методи и проширимо апстрактну класу.

Синтакса

обј. метода (нова класа () {публиц воид до {}})

Пример

// интерфејс интерфејса Порука {Стринг греет ()} јавна класа Ми_цласс {// објект поруке интерфејса је прихваћен овом методом публиц воид дисплаиМессаге (Мессаге м) {Систем.оут.принтлн (м.греет () + ', пример анонимна унутрашња класа као аргумент ')} публиц статиц воид маин (Стринг аргс []) {// Инстантирање класе Ми_цласс обј = нев Ми_цласс () // Прослеђивање анонимне интерне класе као аргумента обј.дисплаиМессаге (нев Мессаге () {публиц Стринг греет () {ретурн 'Хеи'}})}}

Оутпут

Настављајући са овим чланком о Иннер Цласс ин Јава,

Анонимна унутрашња класа одређене подкласе

Изворни код

класа Демо {воид схов () {Систем.оут.принтлн ('био сам у схов методи класе')}} цласс Флавор1Демо {статиц Демо д = нев Демо () {воид схов () {супер.схов () Систем. оут.принтлн ('био сам присутан у класи Флавор1Демо')}} јавна статичка воид главна (Стринг [] аргс) {д.схов ()}}

Оутпут

Настављајући са овим чланком о Иннер Цласс ин Јава,

Анонимна унутрашња класа као реализатор наведеног Приступ

Изворни код

класа Флавор2Демо {// класа која имплементира статички интерфејс Хелло Хелло х = нев Хелло () {публиц воид схов () {Систем.оут.принтлн ('био сам присутан у анонимној класи')}} публиц статиц воид маин (Стринг [] аргс) {х.схов ()}} интерфејс Здраво {воид схов ()}

Оутпут

како поставити пут за јаву

Настављајући са овим чланком о Иннер Цласс ин Јава,

Статичне угнеждене класе

Ови часови технички нису познати као унутрашњи часови. Ове класе су сличне статичком члану спољне класе. Статична угнежђена класа нема приступ променљивим и методама спољне класе. Не треба да инстанцирамо спољну класу, може јој се приступити директно помоћу статичких чланова.

Синтакса

Вањска класа {Статиц цласс нестед_екампле {}}

Пример

јавна класа Оутер {статиц цласс Нестед_Екампле {публиц воид ми_метход () {Систем.оут.принтлн ('То је угнијежђена класа')}} публиц статиц воид маин (Стринг аргс []) {Оутер.Нестед_Екампле угнијежђено = нев Оутер.Нестед_Екампле () нестед.ми_метход ()}}

Оутпут

Тако смо дошли до краја овог чланка. Ако желите да сазнате више,погледајте Едурека, поуздана компанија за учење на мрежи. Едурекин курс за обуку и сертификацију Јава Ј2ЕЕ и СОА осмишљен је тако да вас оспособи за основне и напредне Јава концепте заједно са разним Јава оквирима попут Хибернате & Спринг.

Имате питање за нас? Молимо вас да га помињете у одељку за коментаре овог чланка и јавићемо вам се што је пре могуће.