You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

I java finnes det flere synlighetsmodifikatorer som gir mulighet til å styre "tilgangen" til klasser, variabler, metoder og konstruktører. For mer om hvorfor vi ønsker å styre denne "tilgangen", se Innkapsling.

Vi har fire nivåer for tilgjengelighet:

  • Synlig i pakken (package) er standardverdi og trenger ingen modifikator
  • Synlig kun i klassen, private
  • Synlig for alle, public
  • Synlig i pakken og for subklasser, protected

Defaut

Dersom man deklarerer et felt, en metode etc. uten synlighetsmodifikator, tildeles standardverdien. Dette gjør ressursen tilgjengelig for alle klasser som ligger i samme package.

Default modifier
 


Private

Dersom man deklarerer et felt, en metode etc. som private, er det kun mulig å hente/forandre/kalle på denne ressursen direkte i klassen.
Merk at verdiene til private felt fortsatt kan hentes gjennom en getter eller forandres med en setter

Private modifier
 


Public 

Dersom man deklarerer et felt, en metode etc. som public, er det mulig for alle som vet om ressursen å hente/forandre/kalle på den.

Public modifier
 

 

Protected

Dersom man deklarerer et felt, en metode etc. som protected, er det mulig å hente/forandre/kalle på den dersom kallet kommer fra samme package eller fra en subklasse av klassen hvor ressursen er definert.
 

Protected modifier
 


Synlighet ved arv

Det finnes i java et sett med regler for synlighet ved arv

  • Metoder som deklareres som public i superklassen, må også være public i subklasser
  • Metoder som deklareres som protected i en superklasse må enten være protected eller public i subklasser; det er ikke mulig å redusere synlighet til private.

  • Metoder deklarert uten synlighetsmodifikator (default) kan deklareres mer skjult i subklasser

  • Metoder som deklareres private arves ikke i det hele tatt, så det er ingen regler for disse.


DENNE SIDEN ER UNDER UTVIKLING

  • No labels