Sadržaj
Kada radimo na izgradnji korisničkih sučelja u Java, moramo posvetiti posebnu pozornost i trud za izgradnju različitih metoda Slušatelj ili slušatelji koji bilježe sve događaje koji se mogu generirati iz radnji korisnika.Koliko puta svaki od ovih razreda Slušatelj oni će biti samo za korištenje i potrošnju određene komponente sustava ili aplikacije koju gradimo, nema puno smisla praviti potpune i odvojene klase.
Zato imamo anonimni časovi, s čime možemo skratiti definiciju Slušatelj i na taj način pojednostaviti njegovu implementaciju u naše programe.
Kao što smo spomenuli na početku, kada gradimo komponente tog tipa Slušatelj Za rukovanje događajima elemenata naših korisničkih sučelja, oni općenito imaju vrlo specifičnu svrhu koja se ne može ponovno koristiti, zato možemo izabrati da ih generiramo kao ugniježđene klase i na taj način pojednostavimo generiranje koda.
Anonimni časoviMeđutim, kao dobri programeri, zasigurno ćemo morati poboljšati stvari i učiniti ih još jednostavnijima, tu je mjesto anonimni časovi, oni nam omogućuju generiranje a ugniježđenu klasu i njezinu instancu u jednom koraku, time se trudimo olakšati razvoj različitih korisničkih sučelja.
Pogledajmo u nastavku nekoliko primjera kako možemo implementirati anonimnu klasu počevši od ugniježđene klase:
Vidimo da u prvom dijelu definiramo a javna metoda a zatim unutar ove napravimo ugniježđenu klasu, ova klasa je zadužena za implementaciju a Sučelje kako bi se proveo a Slušatelj za događaje koji se mogu generirati u programu.
Na dnu smo učinili isto što i na početku, samo što umjesto definiranja ugniježđene klase definiramo anonimni razred, s kojim možemo implementirati sučelje i napraviti instancu u jednom koraku, čime se učinkovito smanjuju redovi koda za izvršavanje.
- A anonimni razred to je zapravo posebna vrsta ugniježđene klase i bit će tretirana kao takva, međutim to ne može učiniti produžava ili oruđa eksplicitno.
- A anonimni razred uvijek moraju implementirati apstraktne metode super klase ili Sučelje.
- The anonimni časovi uvijek će koristiti oblik bez argumenta konstruktora više klase. U slučaju da je sučelje implementirano, konstruktor će biti Objekt.
- Za svaku anonimnu klasu koja je sastavljena, Java će generirati datoteku .class, gdje će svaka biti identificirana, na primjer, redoslijedom kojim su preuzete ClassExternal $ 1class, ClassExternal $ 2.class i tako dalje.