Skip to main content

Co to jest anonimowa klasa wewnętrzna?

W programowaniu komputerowym zorientowanym na obiekty anonimowa klasa wewnętrzna to klasa zadeklarowana wewnątrz metody, ale jest bezimienna.Anonimowa klasa wewnętrzna ma kilka ograniczeń, które różnią się od klasy normalnej, w tym ograniczenie zakresu zmiennych, do których można uzyskać dostęp.Istnieją kilka bardzo specyficznych sytuacji, w których korzystanie z anonimowej klasy wewnętrznej może uczynić kod źródłowy bardziej czytelny, ale służy przede wszystkim do egzekwowania enkapsulacji, w których generowanie oddzielnych klas może go skomplikować.

enkapsulacja jest koncepcją w programowaniu obiektowym zorientowanym na obiekty(Oop), że obiekt i jego komponenty powinny być w jakiś sposób chronione i związane z obiektem.Anonimowe klasy wewnętrzne i ogólnie klasy wewnętrzne pomagają zrealizować kapsułkowanie szczególnie złożonych obiektów.Zamiast tworzyć klasę, która opiera się na osobnej zewnętrznej, łącząc je ze sobą sztucznie i potencjalnie odsłaniając niektóre elementy, anonimowa klasa wewnętrzna może solidnie powiązać te dwa.

W niektórych językach programistycznych anonimowa klasa wewnętrzna możePomóż przezwyciężyć ograniczenia pojedynczego dziedziczenia.Jeśli obiekt dziedziczy z jednej klasy, ale musi uzyskać dostęp do innej, klasa wewnętrzna może być generowana w locie, a następnie przekazać odpowiednim obsługi.Ta technika jest powszechna w przypadku oddzwonienia i słuchaczy wydarzeń.Jedyną alternatywą byłoby utworzenie całej drugiej klasy, w której tylko jedna lub dwie metody są zastąpione.

Anonimowe klasy wewnętrzne mają pewne ograniczenia, aby zapobiec rozbiciu i egzekwowania zakresu.Głównym ograniczeniem jest to, że anonimowa klasa wewnętrzna nie może uzyskać dostępu do zmiennych metody, w której się znajduje, chyba że zmienne te zostaną ogłoszone jako ostateczne.Wynika to z faktu, że klasa wewnętrzna może nadal funkcjonować poza życiem klasy i metody, w której gniazduje.Zmienne klasy pakowania zostaną zniszczone po zakończeniu jej życia, więc odniesienia, które utrzymywała klasa wewnętrzna, staną się natychmiast nieważne.Jedynym wyjątkiem jest zmienna końcowa, ponieważ będzie ona istniała poza instancją.

Jednym z bardziej szczegółowych zastosowań anonimowej klasy wewnętrznej jest ochrona kodu.Wiele języków OOP zapewnia mechanizm zwany odbiciem.Refleksja pozwala programowi wyróżnić inną klasę i zobaczyć, jakie są zmienne i metody jej członka, ale nie sam kod.Korzystając z anonimowej klasy wewnętrznej, zawartość klasy wewnętrznej jest chroniona przed refleksją, a wewnętrzne działanie większej klasy można skutecznie ukryć.