Преглед садржаја
Када радимо на изградњи корисничких интерфејса у Јава, морамо посветити посебну пажњу и труд да изградимо различите методе Слушалац или слушаоци који бележе све догађаје који се могу генерисати из радњи корисника.Колико пута свака од ових класа Слушалац они ће бити само за употребу и потрошњу одређене компоненте система или апликације коју градимо, нема много смисла правити потпуне и одвојене класе.
Зато имамо анонимни часови, помоћу којих можемо скратити дефиницију Слушалац и на тај начин поједноставити његову имплементацију у наше програме.
Као што смо споменули на почетку, када градимо компоненте типа Слушалац За руковање догађајима елемената наших корисничких интерфејса, они генерално имају врло специфичну сврху која се не може поново користити, зато можемо изабрати да их генеришемо као угнежђене класе и на тај начин поједноставимо да се код мало генерише.
Анонимни часовиМеђутим, као добри програмери, сигурно ћемо морати да побољшамо ствари и учинимо их још једноставнијим, овде је анонимни часови, они нам омогућавају да генеришемо а угнежђену класу и њену инстанцу у једном кораку, овим се трудимо да олакшамо развој различитих корисничких интерфејса.
Погледајмо испод неколико примера како можемо имплементирати анонимну класу почевши од угнежђене класе:
Видимо да у првом делу дефинишемо а јавни метод и онда унутар овога правимо угнежђену класу, ова класа је задужена за имплементацију а Интерфејс у циљу спровођења а Слушалац за догађаје који се могу генерисати у програму.
На дну смо урадили исто што и на почетку, само што уместо дефинисања угнежђене класе дефинишемо анонимни час, са којим можемо имплементирати интерфејс и направити инстанцу у једном кораку, чиме се ефикасно смањују линије кода које треба извршити.
- А. анонимни час то је заправо посебна врста угнежђене класе и биће третирана као таква, међутим то не може учинити продужава или спроводи изричито.
- А. анонимни час мора увек применити апстрактне методе супер класе или Интерфејс.
- Тхе анонимни часови увек ће користити формулу без аргумента конструктора више класе. У случају да је интерфејс имплементиран, конструктор ће бити Објецт.
- За сваку анонимну класу која је састављена, Јава ће генерисати .цласс датотеку, где ће свака бити идентификована према редоследу по коме су преузете, на пример ЦлассЕктернал $ 1цласс, ЦлассЕктернал $ 2.цласс и тако даље.