Junior
Czym są klasy anonimowe i gdzie są stosowane?
sobes.tech AI
Odpowiedź od AI
Klasa anonimowa to lokalna klasa wewnętrzna bez nazwy.
-
Zastosowania:
- Tworzenie słuchaczy zdarzeń w aplikacjach GUI (np. dla przycisków).
- Do implementacji interfejsów lub rozszerzania klas abstrakcyjnych "na miejscu", gdy potrzebny jest tylko jeden egzemplarz i jego użycie jest lokalne.
- W programowaniu wielowątkowym do tworzenia instancji
RunnablelubCallable.
-
Zalety:
- Skracają ilość kodu, gdy nie jest wymagana ponowne użycie klasy.
- Ułatwiają czytelność kodu dla prostych, jednorazowych implementacji.
-
Wady:
- Mogą uczynić kod mniej czytelnym dla złożonych implementacji.
- Nie można ich ponownie używać.
- Dostęp do pól klasy zewnętrznej odbywa się tylko przez zmienne
finallub efektywnie finalne w starszych wersjach Javy.
// Przykład użycia klasy anonimowej dla Runnable
Runnable myRunnable = new Runnable() {
@Override
public void run() {
System.out.println("Uruchamianie w wątku klasy anonimowej.");
}
};
new Thread(myRunnable).start();
// Przykład użycia klasy anonimowej dla słuchacza zdarzeń (hipotetyczny)
// Niektóre frameworki UI używają takiego podejścia.
//button.setOnAction(new EventHandler<ActionEvent>() {
// @Override
// public void handle(ActionEvent event) {
// System.out.println("Przycisk kliknięty!");
// }
//});