Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 1
  • 214

Czy istnieje możliwość tworzenia klas wewnętrznych bez instancji klasy zewnętrznej, w której klasa wewnętrzna jest definiowana jako składnik innej klasy?

Uczestnik szkolenia
  • Zapytał
  • @ Uczestnik szkolenia | 25.06.2013

Odpowiedź (1)

  • 0

Klasa wewnętrzna jest definiowana jako składnik innej klasy i w związku czym ma ona dostęp do wszystkich składników klasy zewnętrznej (również prywatnych) - potrzeba dostępu do elementów prywatnych z poziomu innego obiektu jest częstym powodem tworzenia klas wewnętrznych. Ponadto sama klasa wewnętrzna może być prywatna i niedostępna na zewnątrz, a jej instancja jest zazwyczaj powoływana w kontekście instancji klasy zewnętrznej (new Outer.new Inner()). Istnieje jednak możliwość stworzenia klasy wewnętrznej bez instancji klasy zewnętrznej - klasa wewnętrzna musi być wtedy statyczna (static). Dzięki temu, podobnie jak w przypadku metod statycznych, nie ma potrzeby tworzenia instancji klasy zewnętrznej (new Outer.Inner()). Skutkiem ubocznym takiego podejścia jest jednak to, że klasa wewnętrzna nie ma wtedy dostępu do niestatycznych argumentów klasy zewnętrznej.

  • Odpowiedział
  • @ | 25.06.2013
  • TRENER ALTKOM AKADEMII