Како применити анонимни час у Јави



Овај блог ће вам пружити детаљно и свеобухватно знање о анонимној класи у Јави са примерима и како се она разликује од редовне класе.

Анонимне класе вам омогућавају да напишете мали код, а истовремено вам омогућавају декларацију и инстанцирање класе. Ове класе немају имена, користе се када било коју класу желите да користите само једном. То је важан аспект Јава програмирања. Хајде да схватимо шта је Анонимна класа на Јави следећим редоследом:

Изјава о анонимним часовима





Обично креирамо класу, тј. Декларишемо класу, али анонимне класе су изрази, што значи да анонимну класу дефинишемо у другој израз . Једноставним речима, анонимна унутрашња класа је класа без имена и креира се само један објекат.

Anonymous-Class-In-Java



Анонимна класа је корисна када морамо да направимо инстанцу објекта са методама преоптерећења класе или интерфејса без стварања подкласе класе.

Анонимни се могу креирати на два начина:

  • Предавање (може бити и Апстрактно)
  • Приступ

У анонимној класи можемо изјавити следеће:



како сада користити услугу
  • Поља
  • Додатне методе
  • Инстанцијализатори
  • Локални часови

Синтакса анонимне класе у Јави

Синтакса анонимне класе је слична конструктору, с тим што у блоку постоји дефиниција класе, као што је приказано у доњем исечку:

// АнонимоусЦласс = интерфејс, апстрактна / конкретна класа. АнонимоусЦласс т = нев АнонимоусЦласс () {// методе и поља публиц воид сомеМетход () {// код иде овде}}

Погледајмо следећи пример:

Следећи пример,ХеллоАнонимоусЦласс, користи анонимне класе у иницијализацијским изразима локалних променљивихпоздрави некогаали, користи локалну класу за иницијализацију променљивегреетВорлд:

јавна класа ХеллоАнонимоусЦласс {интерфејс ХеллоВорлд {јавна празнина саиХелло () јавна празнина саиХеллоТо (Стринг некога)} јавна празнина саиХелло () {класа ГреетВорлд имплементира ХеллоВорлд {Стринг наме = 'ворлд' публиц воид саиХелло () {саиХеллоТо ('ворлд')} јавна празнина саиХеллоТо (Стринг нетко) {наме = неко Систем.оут.принтлн ('Хелло' + наме)}} ХеллоВорлд греетВорлд = нев ГреетВорлд () ХеллоВорлд греетСомеоне = нев ХеллоВорлд () {Стринг наме = 'јон' публиц воид саиХелло ( ) {саиХеллоТо ('Јон')} јавна празнина саиХеллоТо (Стринг некога) {наме = неко Систем.оут.принтлн ('хола' + име)}} греетВорлд.саиХелло () греетСомеоне.саиХеллоТо ('Дое')} јавна статичка воид маин (Стринг ... аргс) {ХеллоАнонимоусЦласс миАпп = нови ХеллоАнонимоусЦласс () миАпп.саиХелло ()}}

Као што смо видели да је анонимна класа израз, синтакса је слична конструктору, осим што у блоку постоји дефиниција класе. Размотрите инстанцију објекта греетСомеоне:

ХеллоВорлд греетСомеоне = нев ХеллоВорлд () {Стринг наме = 'јон' публиц воид саиХелло () {саиХеллоТо ('Јон')} публиц воид саиХеллоТо (Стринг нетко) {наме = неко Систем.оут.принтлн ('хола' + име) }}

Анонимни час се састоји од следећег:

шта скенер ради у јави
  • нови оператер.
  • Може да имплементира интерфејс или да прошири класу. Као у горњем примеру, он примењује интерфејс.
  • Садржи заграде баш као и нормалне класе како би конструктору проследио аргументе.
  • Садржи тело које садржи декларације метода. Изјаве нису дозвољене.

Анонимни час треба да буде део изјава.

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

Начини за стварање анонимне класе у Јави

Постоје 3 начина за стварање унутрашње класе у Јави

  • Проширењем часа

Можемо створити анонимну унутрашњу класу проширивањем друге класе, претпоставимо да морамо створити нит помоћу класе Тхреад, можемо створити анонимну унутрашњу класу умјесто да креирамо засебну класу.

// Програм за илустрацију Анонимне унутрашње класе проширивањем друге класе класе АнонимоусТхреадЦласс {јавна статичка воид главна (Стринг [] аргс) {// Анонимна унутрашња класа која проширује класу Тема Нит т = нова нит () {јавна воид рун () {Систем .оут.принтлн ('Дете!')}} т.старт () Систем.оут.принтлн ('Родитељ!')}}

Излаз:

Родитељ!

Дете!

  • Имплементацијом интерфејса

Такође можемо створити анонимну унутрашњу класу применом интерфејса. Сада, како смо креирали унутрашњу класу ширењем класе на сличан начин, можемо створити класу која имплементира интерфејс.

// Програм за илустрацију анонимне унутрашње класе применом класе интерфејса АнонимоусТхреадЦласс {јавна статичка воид главна (Стринг [] аргс) {// Анонимна унутрашња класа која имплементира интерфејс Руннабле р = нев Руннабле () {публиц воид рун () {Систем.оут .принтлн ('Цхилд!')}} Тема т = нова Тема (р) т.старт () Систем.оут.принтлн ('Родитељ!')}}

Излаз:

Родитељ!

Дете!

  • Као аргумент за методу / конструктор

Да бисмо разумели синтаксу, погледајмо пример испод:

// Програм за илустрацију Анонимне унутрашње класе помоћу класе аргумената АнонимоусТхреадЦласс {публиц статиц воид маин (Стринг [] аргс) {// Анонимна класа са аргументом конструктора Тхреад т = нев Тхреад (нев Руннабле () {публиц воид рун () {Систем. оут.принтлн ('Цхилд!')}}) т.старт () Систем.оут.принтлн ('Родитељ!')}}

Излаз:

Родитељ!

Дете!

Разлика између редовне и анонимне унутрашње класе

  • Можемо спровести вишеструки број интерфејса коришћењем нормалне класе, али са анонимном унутрашњом класом можемо применити само један интерфејс.

  • Редовним предавањем можемо продужити час и такође имплементирати више интерфејса, али са анонимном унутрашњом класом можемо или проширити класу или имплементирати интерфејс, али не оба истовремено.

    функција статичког члана у ц ++
  • Са анонимним ми не може писати конструктор јер анонимна унутрашња класа нема име и име конструктора треба да буде исто као и име класе.

У овом чланку смо видели шта је анонимна унутрашња класа и како је можемо створити. прошли смо кроз синтаксу анонимне унутрашње класе и такође како можемо да направимо анонимну класу на 3 начина и тиме смо дошли до краја овог чланка Анонимна класа у Јави. Погледајте од Едуреке.

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