Jaki jest cel klasy wewnętrznej anonimowej (Anonymous Inner Class) w Javie?

W Javie, klasy wewnętrzne anonimowe są potężnym narzędziem programistycznym, które pozwala na rozwijanie bardziej zwięzłego i elastycznego kodu. Takie klasy są definiowane bez nazwy w wyrażeniach lub blokach kodu, gdzie są od razu tworzone i wykorzystywane. Służą głównie do implementacji interfejsów lub rozszerzenia klas w miejscach, gdzie wymaga tego tylko jednorazowe użycie.

Przykład zastosowania

Poniżej przedstawiam kompletny przykład użycia anonimowej klasy wewnętrznej w Javie, który zilustruje implementację interfejsu za pomocą tej techniki. Zastosowany przykład pokazuje stworzenie klasy anonimowej, która implementuje interfejs Runnable.

public class Main {
    public static void main(String[] args) {
        // Tworzenie nowego wątku za pomocą klasy anonimowej
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                // Wypisz komunikat na ekranie
                System.out.println("Witaj ze wątku!");
            }
        });

        // Uruchomienie wątku
        thread.start();
    }
}
Komentarze do kodu:
  1. Thread thread = new Thread(new Runnable() {...} – tworzymy nowy obiekt Thread, przekazując do konstruktora implementację interfejsu Runnable jako klasę anonimową.
  2. @Override public void run() {...} – metoda run() jest obowiązkowa do zaimplementowania, gdyż jest to metoda z interfejsu Runnable. Wewnątrz klasy anonimowej definiujemy jej działanie.
  3. System.out.println("Witaj ze wątku!"); – wewnątrz metody run(), klasa anonimowa wykonuje operację wypisania tekstu na ekranie.
  4. thread.start(); – metoda start() na obiekcie thread powoduje uruchomienie nowego wątku, który wykona kod zaimplementowany w metodzie run().

Podsumowanie

Klasy wewnętrzne anonimowe w Javie pozwalają na szybkie i efektywne implementowanie interfejsów oraz dziedziczenie z klas w miejscach, gdzie takie działanie jest potrzebne tylko raz. Dzięki swojej anonimowości, są idealnym rozwiązaniem do tworzenia zwięzłego i przejrzystego kodu, szczególnie w sytuacjach, gdy implementacja nie jest używana w innych częściach programu. Znajdują szerokie zastosowanie, gdy potrzebujemy szybko zaimplementować interfejs lub rozszerzyć klasę, bez tworzenia dodatkowej, formalnej klasy

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top