Java gir en rekke av tilgang modifikatorer for å stille inn tilgangen nivåer for klasser, variabler, metoder, og konstruktører. De fire nivåer er −
- Synlig for pakken, standard. Ingen modifikasjoner er nødvendige.
- Synlig for klassen bare (privat).
- Synlig for verden (det offentlige).
- Synlig for pakken og alle underklasser (beskyttet).,
Standard Access Modifier – Ingen Nøkkelord
Standard access modifier betyr at vi ikke uttrykkelig erklærer en access modifier for en klasse, feltet, metode, etc.
En variabel eller metode erklært uten tilgang kontroll modifier er tilgjengelig for andre klasser i samme pakke. Feltene i et grensesnitt som er implisitt public static final og metoder i et grensesnitt er standard offentlige.,
Eksempel
Variabler og metoder kan bli erklært uten noen modifikasjoner, som i følgende eksempler −
String version = "1.5.1";boolean processOrder() { return true;}
Privat Access Modifier – Privat
Metoder, variabler og konstruktører som er erklært private kan bare nås innen erklært klasse for seg selv.
Privat access modifier er den mest restriktive tilgang nivå. Klasse og grensesnittene kan være private.
Variabler som er deklarert private kan nås utenfor klassen, hvis offentlige getter metoder er til stede i klassen.,
ved Hjelp av den private modifier er den viktigste måten at et objekt omslutter seg selv og skjuler data fra verden utenfor.
Eksempel
følgende klasse bruker privat tilgang kontroll −
Her format variabel av Loggeren klasse er privat, så det er ingen måte for andre klasser for å hente eller sette verdien direkte.
Så, for å gjøre denne variabelen tilgjengelig for omverdenen, vi definert to public metoder: getFormat(), som returnerer verdien av format, og setFormat(String), som setter sin verdi.,
Public Access Modifier – Offentlig
En klasse, metode, konstruktør, grensesnitt, etc. erklært offentlig kan være tilgjengelig fra andre klasse. Derfor, felt, metoder, blokker deklarert inne i en offentlig klasse kan nås fra en hvilken som helst klasse som tilhører Java-Universet.
Men hvis public class vi prøver å få tilgang til er i en annen pakke, så publikum klasse fortsatt behov for å bli importert. På grunn av klasse arv, alle public metoder og variabler av en klasse er arvet av sin underklasser.,
Eksempel
følgende funksjon bruker offentlige access control −
public static void main(String arguments) { // ...}
The main () – metoden på en søknad må være offentlige. Ellers, det kan ikke være kalt av en Java-tolker (for eksempel java) til å kjøre klasse.
Protected Access Modifier – Beskyttet
Variabler, metoder, og konstruktører, som er erklært beskyttet i en superclass kan nås bare ved underklasser i andre pakken eller noen klasse i pakken av beskyttet medlemmenes klasse.
The protected access modifier, kan ikke brukes til klassen og grensesnitt., Metoder, felt kan bli erklært beskyttet, men metoder og felt i et grensesnitt kan ikke bli erklært beskyttet.
Protected access gir subclass en sjanse til å bruke helper metode eller variabel, samtidig som man unngår en nonrelated klasse fra å prøve å bruke det.
Eksempel
følgende overordnede klasse bruker protected access control, å la sine barn klasse overstyre openSpeaker () – metoden −
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 private, så det ville ikke være tilgjengelig fra hvilken som helst annen klasse annet enn AudioPlayer., Hvis vi definerer det offentlige, så det ville bli tilgjengelig for alle i verden utenfor. Men vår intensjon er å utsette denne metoden til sine subclass bare, det er derfor vi har brukt beskyttet modifier.
få Tilgang Kontroll og Arv
følgende regler for arvelig metoder håndheves −
-
Metoder erklært offentlig i en superclass må også være publikum i alle underklasser.
-
Metoder deklarert beskyttet i en superclass må enten være beskyttet eller offentlig i underklasser, de kan være private.,
-
Metoder hevdet privat er ikke arvet i det hele tatt, så det er ingen regel for dem.