kontrol af adgang til medlemmer af en klasse

kontrol af adgang til medlemmer af en klasse

adgangsniveaumodifikatorer bestemmer, om andre klasser kan bruge et bestemt felt eller påberåbe sig en bestemt metode. Der er to niveauer af adgangskontrol:

  • på øverste niveau—public eller pakke-privat (ingen eksplicit modifikator).
  • på medlemsniveau – public, private, protected, eller pakke-privat (ingen eksplicit modifikator).,

en klasse kan deklareres med modifikatoren public, i hvilket tilfælde denne klasse er synlig for alle klasser overalt. Hvis en klasse ikke har nogen modifikator (standard, også kendt som pakke-privat), er den kun synlig i sin egen pakke (pakker hedder grupper af relaterede klasser — du lærer om dem i en senere lektion.)

på medlemsniveau kan du også bruge public modifier eller no modifier (pakke-privat) ligesom med topniveauklasser og med samme betydning., For medlemmer er der to yderligere adgangsmodifikatorer: private og protected. Modifikatorenprivate angiver, at Medlemmet kun kan tilgås i sin egen klasse. Modifikatoren protected angiver, at Medlemmet kun kan fås adgang til i sin egen pakke (som med pakke-privat) og desuden af en underklasse af sin klasse i en anden pakke.

følgende tabel viser adgangen til medlemmer tilladt af hver modifikator.,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., Som du kan se, har en klasse altid adgang til sine egne medlemmer. Den anden kolonne angiver, om klasser i samme pakke som klassen (uanset deres forældre) har adgang til medlemmet. Den tredje kolonne angiver, om underklasser af klassen erklæret uden for denne pakke har adgang til medlemmet. Den fjerde kolonne angiver, om alle klasser har adgang til medlemmet.

adgangsniveauer påvirker dig på to måder., Først, når du bruger klasser, der kommer fra en anden kilde, såsom klasserne i Java-platformen, bestemmer adgangsniveauer, hvilke medlemmer af disse klasser dine egne klasser kan bruge. For det andet, når du skriver en klasse, skal du beslutte, hvilket adgangsniveau hver medlemsvariabel og enhver metode i din klasse skal have.

lad os se på en samling af klasser og se, hvordan adgangsniveauer påvirker synligheden. Følgende figur viser de fire klasser i dette eksempel, og hvordan de er relateret.,

klasser og pakker med det eksempel, der bruges til at illustrere adgangsniveauer

følgende tabel viser, hvor medlemmerne af Alpha-klassen er synlige for hver af de adgangsmodifikatorer, der kan anvendes på dem.,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., Adgangsniveauer kan hjælpe dig med at gøre dette.

  • brug det mest restriktive adgangsniveau, der giver mening for et bestemt medlem. Brug private medmindre du har en god grund til ikke at.
  • undgåpublic felter undtagen konstanter. (Mange af eksemplerne i selvstudiet bruger offentlige felter. Dette kan hjælpe med at illustrere nogle punkter kortfattet, men anbefales ikke til produktionskode.) Offentlige felter har en tendens til at linke dig til en bestemt implementering og begrænse din fleksibilitet i at ændre din kode.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *