kontrolowanie dostępu do członków klasy

kontrolowanie dostępu do członków klasy

modyfikatory poziomu dostępu określają, czy inne klasy mogą używać określonego pola lub wywoływać określoną metodę. Istnieją dwa poziomy kontroli dostępu:

  • na najwyższym poziomie—public lub package-private (bez jawnego modyfikatora).
  • na poziomie członka—public,private,protected lub pakiet-prywatny (bez jawnego modyfikatora).,

klasa może być zadeklarowana za pomocą modyfikatora public, w którym to przypadku klasa ta jest widoczna dla wszystkich klas wszędzie. Jeśli klasa nie ma modyfikatora (domyślnego, znanego również jako package-private), jest widoczna tylko w jej własnym pakiecie (pakiety są nazwane grupami powiązanych klas — dowiesz się o nich w późniejszej lekcji.)

na poziomie member, możesz również użyć modyfikatora public lub bez modyfikatora (package-private), tak jak w przypadku klas najwyższego poziomu i o tym samym znaczeniu., Dla członków są dwa dodatkowe modyfikatory dostępu: private I protected. Modyfikator private określa, że członek może być dostępny tylko w jego własnej klasie. Modyfikatorprotected określa, że członek może być dostępny tylko w ramach jego własnego pakietu (tak jak w pakiecie-private), a ponadto przez podklasę jego klasy w innym pakiecie.

poniższa tabela pokazuje dostęp do członków dozwolonych przez każdy modyfikator.,Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N private Y N N N

The first data column indicates whether the class itself has access to the member defined by the access level., Jak widać, Klasa zawsze ma dostęp do swoich członków. Druga kolumna wskazuje, czy klasy w tym samym pakiecie co Klasa (niezależnie od ich pochodzenia) mają dostęp do członka. Trzecia kolumna wskazuje, czy podklasy klasy zadeklarowanej poza tym pakietem mają dostęp do członka. Czwarta kolumna wskazuje, czy wszystkie klasy mają dostęp do członka.

poziomy dostępu wpływają na Ciebie na dwa sposoby., Po pierwsze, gdy używasz klas pochodzących z innego źródła, takich jak Klasy na platformie Java, poziomy dostępu określają, z których klas mogą korzystać twoje własne klasy. Po drugie, kiedy piszesz klasę, musisz zdecydować, jaki poziom dostępu powinna mieć każda zmienna członkowska i każda metoda w twojej klasie.

przyjrzyjmy się kolekcji klas i zobaczmy, jak poziomy dostępu wpływają na widoczność. Poniższy rysunek pokazuje cztery klasy w tym przykładzie i jak są ze sobą powiązane.,

klasy i pakiety przykładu używanego do zilustrowania poziomów dostępu

poniższa tabela pokazuje, gdzie Członkowie klasy Alpha są widoczni dla każdego z modyfikatorów dostępu, które można do nich zastosować.,ha Beta Alphasub Gamma public Y Y Y Y protected Y Y Y N no modifier Y Y N N private Y N N N

Tips on Choosing an Access Level:

If other programmers use your class, you want to ensure that errors from misuse cannot happen., Poziomy dostępu mogą ci w tym pomóc.

  • użyj najbardziej restrykcyjnego poziomu dostępu, który ma sens dla danego członka. Użyj private, chyba że masz dobry powód, aby tego nie robić.
  • unikaj pólpublic z wyjątkiem stałych. (Wiele przykładów w samouczku wykorzystuje pola publiczne. Może to pomóc w zwięzłym zilustrowaniu niektórych punktów, ale nie jest zalecane dla kodu produkcyjnego.) Pola publiczne mają tendencję do łączenia cię z konkretną implementacją i ograniczają Twoją elastyczność w zmienianiu kodu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *