Java giver en række access modifiers til at oprette adgang niveauer for klasser, variabler, metoder og konstruktører. De fire adgangsniveauer er –
- synlige for pakken, standard. Ingen modifikatorer er nødvendige.
- kun synlig for klassen (privat).
- synlig for verden (offentlig).
- synlig for pakken og alle underklasser (beskyttet).,
Standard Access Modifier – Ikke Søgeord
Standard access modifier betyder, at vi ikke udtrykkeligt erklærer en access modifier for en klasse, felt, metode, etc.
en variabel eller metode erklæret uden adgangskontrol modifikator er tilgængelig for enhver anden klasse i samme pakke. Felterne i en grænseflade er implicit offentlige statiske endelige og metoderne i en grænseflade er som standard offentlige.,
Eksempel
Variabler og metoder, der kan erklæres uden nogen modifikatorer, som i de følgende eksempler −
String version = "1.5.1";boolean processOrder() { return true;}
Privat Adgang Modifier – Privat
Metoder, variabler og konstruktører, der er erklæret private, kan kun nås inden for den angivne klasse for sig selv.
privat adgangsmodifikator er det mest restriktive adgangsniveau. Klasse og grænseflader kan ikke være private.
variabler, der erklæres private, kan fås uden for klassen, hvis offentlige getter-metoder er til stede i klassen.,
brug af den private modifikator er den vigtigste måde, hvorpå et objekt indkapsler sig selv og skjuler data fra omverdenen.
eksempel
følgende klasse bruger privat adgangskontrol −
Her er formatvariablen for Loggerklassen privat, så der er ingen måde for andre klasser at hente eller indstille dens værdi direkte.
så for at gøre denne variabel tilgængelig for omverdenen definerede vi to offentlige metoder: getFormat (), som returnerer værdien af format og setFormat(String), som sætter dens værdi.,
Public Access Modifier – Public
A klasse, metode, konstruktør, interface osv. erklæret offentligt kan tilgås fra enhver anden klasse. Derfor kan felter, metoder, blokke, der er erklæret i en offentlig klasse, fås fra enhver klasse, der tilhører Java-universet.
men hvis den offentlige klasse, vi forsøger at få adgang til, er i en anden pakke, skal den offentlige klasse stadig importeres. På grund af klassearv, alle offentlige metoder og variabler i en klasse arves af dens underklasser.,
eksempel
følgende funktion bruger offentlig adgangskontrol −
public static void main(String arguments) { // ...}
den vigtigste() metode til en applikation skal være offentlig. Ellers kunne det ikke kaldes af en Java-tolk (såsom java) for at køre klassen.
beskyttet adgangsmodifikator – beskyttet
variabler, metoder og konstruktører, som erklæres beskyttet i en superklasse, kan kun tilgås af underklasserne i anden pakke eller en hvilken som helst klasse i pakken af de beskyttede medlemmers klasse.
den beskyttede adgangsmodifikator kan ikke anvendes til klasse og grænseflader., Metoder, felter kan erklæres beskyttet, men metoder og felter i en grænseflade kan ikke erklæres beskyttet.beskyttet adgang giver underklassen en chance for at bruge hjælpemetoden eller variablen, samtidig med at en ikke-relateret klasse forhindres i at prøve at bruge den.
Eksempel
følgende overordnede klassen bruger protected access control, til at give sit barn klasse tilsidesætte openSpeaker() metode −
class AudioPlayer { protected boolean openSpeaker(Speaker sp) { // implementation details }}class StreamingAudioPlayer extends AudioPlayer { boolean openSpeaker(Speaker sp) { // implementation details }}
Her, hvis vi definerer openSpeaker () – metoden, som er private, så ville det ikke være tilgængelig fra enhver anden klasse end AudioPlayer., Hvis vi definerer det som offentligt, vil det blive tilgængeligt for hele omverdenen. Men vores hensigt er at udsætte denne metode til sin underklasse kun, det er derfor, vi har brugt beskyttet modifier.
adgangskontrol og Arv
følgende regler for nedarvede metoder håndhæves, −
-
Metoder, der er erklæret public i en superklasse også skal være offentligt tilgængelige i alle undergrupper.
-
metoder, der erklæres beskyttet i en superklasse, skal enten være beskyttet eller offentlige i underklasser; de kan ikke være private.,
-
metoder, der er bekendt privat, er slet ikke arvet, så der er ingen regel for dem.