Съдържание
Когато работим за изграждане на потребителски интерфейси в Java, трябва да обърнем специално внимание и усилия за изграждането на различните методи Слушател или слушатели, които улавят всички събития, които могат да бъдат генерирани от действия на потребителя.Колко пъти всеки от тези класове Слушател те ще бъдат само за използване и потребление на определен компонент от системата или приложението, което изграждаме, няма много смисъл да се правят пълни и отделни класове.
Ето защо имаме анонимни класове, с което можем да съкратим определението на Слушател и по този начин опростяваме прилагането му в нашите програми.
Както споменахме в началото, когато изграждаме компоненти от типа Слушател За да обработваме събитията от елементите на нашите потребителски интерфейси, те обикновено имат много специфична цел, която не може да се използва повторно, затова можем да изберем да ги генерираме като вложени класове и по този начин да опростим кода, който да се генерира малко.
Анонимни класовеВъпреки това, като добри програмисти, със сигурност ще се наложи да подобрим нещата и да ги направим още по -опростени, това е мястото, където анонимни класове, те ни позволяват да генерираме a вложен клас и негов екземпляр в една стъпка, с това ние гарантираме, че ще улесним разработването на различните потребителски интерфейси.
Нека видим по -долу няколко примера за това как можем да реализираме анонимен клас, започвайки от вложен клас:
Виждаме, че в първата част дефинираме a публичен метод и след това вътре в това правим вложен клас, този клас отговаря за внедряването на a Интерфейс с цел прилагане на a Слушател за събитията, които могат да бъдат генерирани в програмата.
В долната част направихме същото като в началото, само че вместо да дефинираме вложен клас, ние дефинираме анонимен клас, с която можем да внедрим интерфейса и да направим екземпляра в една стъпка, като по този начин ефективно ще намалим редовете на кода, който ще се изпълни.
- А анонимен клас той всъщност е специален тип вложен клас и ще бъде третиран като такъв, но не може да го направи разширява или приспособления изрично.
- А анонимен клас винаги трябва да прилага абстрактните методи на суперкласа или Интерфейс.
- The анонимни класове те винаги ще използват формата без аргументи на конструктора от по-висок клас. В случай, че е реализиран интерфейс, конструкторът ще бъде Обект.
- За всеки анонимен клас, който е компилиран, Java ще генерира .class файл, където всеки от тях ще бъде идентифициран по реда, в който са взети, например ClassExternal $ 1class, ClassExternal $ 2.class и така нататък.