Kategorie szkoleń | Egzaminy | Kontakt

Odpowiedź (1)

  • 0

Słowo kluczowe private możemy zastosować do wszystkich składników klas, a więc: atrybutów, metod, konstruktorów, wewnętrznych klas (w tym także enum) oraz wewnętrznych interfejsów. W ogólności służy ono hermetyzacji, a więc spowodowaniu, aby nie były one dostępne na zewnątrz klasy.

W naszym przypadku wewnętrzna klasa (jako składnik klasy zewnętrznej) może mieć bezpośredni dostęp do wszystkich składników klasy zewnętrznej, nawet tych prywatnych.

Prywatna klasa wewnętrzna może być przydatna przy definiowaniu wewnętrznej struktury klasy, która nie musi być widoczna na zewnątrz.

Jako przykład wyobraźmy sobie, że chcemy zdefiniować klasę, która będzie kolekcją zrealizowaną jako lista podwójnie wiązana. Zewnętrzne, publiczne API pozwoli nam m.in.: na dodawanie i usuwanie elementów kolekcji. Taka operacja (w naszej realizacji kolekcji) wymaga także modyfikacji referencji do sąsiednich elementów listy, ale użytkownik nie musi być tego świadomy. W takiej sytuacji węzeł kolekcji może być idealnym kandydatem na klasę wewnętrzną - powinna ona oprócz przechowywanego obiektu (dostępnego z zewnątrz) posiadać także 2 referencje do elementu poprzedzającego i następującego (te mogą być ukryte).

  • Odpowiedział
  • @ | 23.02.2015
  • TRENER MODERATOR ALTKOM AKADEMII