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:
Thread thread = new Thread(new Runnable() {...}
– tworzymy nowy obiektThread
, przekazując do konstruktora implementację interfejsuRunnable
jako klasę anonimową.@Override public void run() {...}
– metodarun()
jest obowiązkowa do zaimplementowania, gdyż jest to metoda z interfejsuRunnable
. Wewnątrz klasy anonimowej definiujemy jej działanie.System.out.println("Witaj ze wątku!");
– wewnątrz metodyrun()
, klasa anonimowa wykonuje operację wypisania tekstu na ekranie.thread.start();
– metodastart()
na obiekciethread
powoduje uruchomienie nowego wątku, który wykona kod zaimplementowany w metodzierun()
.
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.