Sobes.tech
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 Runnable lub Callable.
  • 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 final lub 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!");
//    }
//});