Унутрашња класа у јави означава једну класу која је члан друге класе. У , постоје разне врсте унутрашњих класа. Овај чланак ће вам помоћи да разоткријете све ове часове. Следеће смернице ће бити детаљно размотрене,
- Угњежђена унутрашња класа
- Метод Локални унутрашњи часови
- Анонимни унутрашњи часови
- Статичне угнежђене класе
Па кренимо са овим чланком о Иннер Цласс Ин Јава,
Унутрашња класа у Јави
Угњежђена унутрашња класа
Ова класа има приступ било којој вредности приватне инстанце спољне класе. Писање једне класе у другу класу такође је дозвољено на Јави. Класа написана унутар је позната угнежђена класа, а класа која садржи унутрашњу класу је позната као спољна класа.
Синтакса
класа изван места {класа изнутра {}}
Пример
У примеру датом у наставку, интерну класу чинимо приватном и приступамо класи помоћу методе.
цласс Оутер_плаце {инт нум привате цласс Иннер_плаце {публиц воид принт () {Систем.оут.принтлн ('То је унутрашња класа')}} воид дисплаи_Иннер () {Иннер_плаце иннер = нев Иннер_плаце () иннер.принт ()}} јавна класа Ми_цласс {публиц статиц воид маин (Стринг аргс []) {Оутер_плаце ектернал = нев Оутер_плаце () ектернал.дисплаи_Иннер ()}}
Оутпут
Овде је спољашње место спољна класа, а унутрашње место се назива унутрашња класа.
Настављајући са овим чланком о Иннер Цласс ин Јава,
Приступ приватним члановима
Унутрашње класе се користе и за приступ приватним члановима класе. Претпоставимо да постоји класа која има приватне чланове који би им могли приступити. Сада напишите унутрашњу класу унутар класе и приступите приватним члановима из методе унутар унутрашње класе.
Ево примера,
цласс Оутер_плаце {привате инт нум = 162 цласс Иннер_плаце {публиц инт гетНум () {Систем.оут.принтлн ('То је гетнум метода унутрашње класе:') ретурн нум}}} јавна класа Ми_цласс {публиц статиц воид маин (Стринг аргс []) {Оутер_плаце ектернал = нев Оутер_плаце () Оутер_плаце.Иннер_плаце иннер = ектернал.нев Иннер_плаце () Систем.оут.принтлн (иннер.гетНум ())}}
Оутпут
Идемо даље,
Метод локалних унутрашњих часова
У Јави можете да напишете класу у оквиру методе која ће бити позната као локални тип. Као и све локалне променљиве, опсег унутрашње класе је ограничен унутар методе.
Пример
Следећи пример ће показати како је имплементирана локална унутрашња класа методе.
ц ++ позив референцом
јавна класа Оутерплаце {воид ми_Метход () {инт нум = 45 цласс МетходИннер_плаце {публиц воид принт () {Систем.оут.принтлн ('метода за унутрашње класе' + нум)}} МетходИннер_плаце иннер = нев МетходИннер_плаце () иннер.принт ( )} публиц статиц воид маин (Стринг аргс []) {Оутерплаце ектернал = нев Оутерплаце () ектернал.ми_Метход ()}}
Оутпут
Настављајући са овим чланком о Иннер Цласс ин Јава,
Анонимни Унутрашњи час
Свака унутрашња класа која је декларисана без назива класе назива се анонимна унутрашња класа. У случају анонимних унутрашњих класа, истовремено их израђујемо и декларишемо.
Кад год желимо да заменимо метод класе или интерфејс, користимо ову класу.
Синтакса
АнонимоусИннер обј1 = нови АнонимоусИннер () {јавна воид метода () {}}
Пример
апстрактна класа АнонимоусИннер {публиц абстрацт воид миметход ()} публиц цласс Оутер_цласс {публиц статиц воид маин (Стринг аргс []) {АнонимоусИннер иннер = нев АнонимоусИннер () {публиц воид миметход () {Систем.оут.принтлн ('пример анонимне унутрашња класа ')}} иннер.миметход ()}}
Оутпут
Настављајући са овим чланком о Иннер Цласс ин Јава,
Као аргумент анонимне унутрашње класе
У овом случају, ако метода прихвати објекат интерфејса, апстрактну класу или конкретну класу, тада смо у могућности да имплементирамо интерфејс, проследимо објекат методи и проширимо апстрактну класу.
Синтакса
обј. метода (нова класа () {публиц воид до {}})
Пример
// интерфејс интерфејса Порука {Стринг греет ()} јавна класа Ми_цласс {// објект поруке интерфејса је прихваћен овом методом публиц воид дисплаиМессаге (Мессаге м) {Систем.оут.принтлн (м.греет () + ', пример анонимна унутрашња класа као аргумент ')} публиц статиц воид маин (Стринг аргс []) {// Инстантирање класе Ми_цласс обј = нев Ми_цласс () // Прослеђивање анонимне интерне класе као аргумента обј.дисплаиМессаге (нев Мессаге () {публиц Стринг греет () {ретурн 'Хеи'}})}}
Оутпут
Настављајући са овим чланком о Иннер Цласс ин Јава,
Анонимна унутрашња класа одређене подкласе
Изворни код
класа Демо {воид схов () {Систем.оут.принтлн ('био сам у схов методи класе')}} цласс Флавор1Демо {статиц Демо д = нев Демо () {воид схов () {супер.схов () Систем. оут.принтлн ('био сам присутан у класи Флавор1Демо')}} јавна статичка воид главна (Стринг [] аргс) {д.схов ()}}
Оутпут
Настављајући са овим чланком о Иннер Цласс ин Јава,
Анонимна унутрашња класа као реализатор наведеног Приступ
Изворни код
класа Флавор2Демо {// класа која имплементира статички интерфејс Хелло Хелло х = нев Хелло () {публиц воид схов () {Систем.оут.принтлн ('био сам присутан у анонимној класи')}} публиц статиц воид маин (Стринг [] аргс) {х.схов ()}} интерфејс Здраво {воид схов ()}
Оутпут
како поставити пут за јаву
Настављајући са овим чланком о Иннер Цласс ин Јава,
Статичне угнеждене класе
Ови часови технички нису познати као унутрашњи часови. Ове класе су сличне статичком члану спољне класе. Статична угнежђена класа нема приступ променљивим и методама спољне класе. Не треба да инстанцирамо спољну класу, може јој се приступити директно помоћу статичких чланова.
Синтакса
Вањска класа {Статиц цласс нестед_екампле {}}
Пример
јавна класа Оутер {статиц цласс Нестед_Екампле {публиц воид ми_метход () {Систем.оут.принтлн ('То је угнијежђена класа')}} публиц статиц воид маин (Стринг аргс []) {Оутер.Нестед_Екампле угнијежђено = нев Оутер.Нестед_Екампле () нестед.ми_метход ()}}
Оутпут
Тако смо дошли до краја овог чланка. Ако желите да сазнате више,погледајте Едурека, поуздана компанија за учење на мрежи. Едурекин курс за обуку и сертификацију Јава Ј2ЕЕ и СОА осмишљен је тако да вас оспособи за основне и напредне Јава концепте заједно са разним Јава оквирима попут Хибернате & Спринг.
Имате питање за нас? Молимо вас да га помињете у одељку за коментаре овог чланка и јавићемо вам се што је пре могуће.