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
public
protected
private
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
public
protected
private
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.