“Java -privilegiumkontrollen oppnås av tilgangsmodifisereren. De tre tilgangsmodifikatorene som tilbys av Java er offentlige, beskyttet og private. Vi vil gå med den beskyttede tilgangsmodifisereren, som er begrenset til medlemsnivået. Det beskyttede søkeordet varierer fra det private nøkkelordet på en måte som det letter tilgang til underklasser av andre pakker så vel som utenfor klasser, men i form av arv. Det beskyttede nøkkelordet kan ikke betegnes til utenforstående klasser og grensesnitt. Brukere kan ikke opprette en klasseforekomst utenfor pakken da funksjonene er sikret med det beskyttede nøkkelordet.”
Eksempel 1
Det beskyttede nøkkelordet brukes før du erklærer at et bestemt attributt er beskyttet. La oss vurdere programmet for å vite om de beskyttede attributtene er tilgjengelige i Java.
Vi har bygget en enkel klasse kalt "ansatt" inn i manuset. Deretter erklærte vi attributtene “EmpName”, “Empemail” og “Empage” av klassen ved å bruke den beskyttede modifisereren. Nå beskyttet vi disse variablene i klassen. Deretter har vi opprettet underklassen "ProtectedCase1" av klassen "ansatt" ved å bruke utvidelsesnøkkelordet. Her har vi generert den private attributtet i Main () -metoden, noe som betyr at bare denne klassen har tilgang til den.
Deretter har vi definert objektet “Empobj” av klassen “ProtectedCase1”. Vi har fått tilgang til hvert beskyttet attributt til klassen "ansatt" med objektet "Empobj" i "systemet.ute.println () ”-funksjon for å skrive ut verdiene. Videre har vi skrevet ut den private attributtverdien her.
Utgangen beviste at de beskyttede attributtverdiene til superklassen er tilgjengelige i underklassen.
Eksempel 2
Vi har sett tilgjengeligheten til det beskyttede søkeordet i Java -programmene ovenfor. Her har vi laget to forskjellige pakker og fått tilgang til de beskyttede metodene.
Programmet er lagret i “dyret.Java ”-fil, som ligger inne i pakken“ P1 ”. Etter det opprettet vi “Animal” -klassen, som også er navnet på Java -filen. Gjennom bruk av "beskyttet" modifiserer har vi bygget "CAT ()" -funksjonen og tildelt systemet.ute.Println () Metode for å skrive ut den spesifiserte meldingen. Vi har påkalt denne beskyttede funksjonen i en annen pakke som nedenfor.
Vi har bygget en annen pakke og lagret Java -filen som "ProtectedCase2" der. Vi har klassen "beskyttetcase2" i filen. Her har vi en Main () -metode der klassen “ProtectedCase2” -objektet “P” er blitt erklært, og med dette objektet prøvde vi å få tilgang til den beskyttede funksjonskatten () av klasse “Animal” som ligger i pakken “P1”.
Når programmet er utført, har kompilasjonsfeilen oppstått, som i skjermen nedenfor. Som et resultat har vi ikke tilgang til den beskyttede attributtet i forskjellige pakker.
Eksempel 3
Den neste tilnærmingen er å bruke det beskyttede nøkkelordet for attributtet til en klasse og ringe det attributtet i en annen klasse.
Vi har etablert en klasse “Stringclass”, og klassen til klassen er definert med String -attributtet “Str”, som holdes beskyttet. Den beskyttede strengattributtet “Str” initialiseres med strengmeldingen. Deretter opprettet vi en klasse, “ProtectedCase3”, med Modifier Public Access og benyttet programmet Main () -metoden. Main () -metoden er deklarert med objektet “S” for klassen “StringClass”, og det objektet kalles den beskyttede attributtet “STR” for å skrive ut strengverdien i “Systemet.ute.print () ”-metode.
Strengmeldingen til det beskyttede attributtet vises her. Derfor er de beskyttede attributtene tilgjengelige i den andre klassen av Java.
Eksempel 4
Programmet er distribuert i samme pakke og får tilgang til den beskyttede metoden, men i en annen klasse av samme pakke.
Vi har en fil som heter “Student.Java ”der vi har bygget klassen“ Student ”og opprettet Show () -metoden inni den.
Deretter opprettet vi en annen fil, "ProtectedCase4", i samme pakke, "P1," og kalte funksjonen "Show ()", som er beskyttet med objektet "ST" av klassen "Student".
Den beskyttede funksjonen returnerer utgangen i form av strengen, som kalles i en annen klasse av samme pakke.
Eksempel 5
Den beskyttede funksjonen til baseklassen kan også være tilgjengelig ved å overstyre den avledede klassen. La oss se demonstrasjonen av denne uttalelsen nedenfor.
Vi har opprettet funksjonsvisningen () med det "beskyttede" prefikset i baseklassen "MyMessage", der vi har spesifisert meldingen. Denne meldingen vises når den beskyttede funksjonen er tilgjengelig. Etter det etablerte vi en avledet klasse “ProtectedCase5” ved å utvide baseklassen “MyMessage”. Der har vi igjen definert den beskyttede visningen () -funksjonen og overstyrte den trykte uttalelsen fra den forrige. Deretter har vi en erklæring om det avledede klasseobjektet "OBJ", som påkaller "Vis ()" -funksjonen.
Den beskyttede funksjonen har blitt overstyrt på tidspunktet for utførelsen, som vises på ledeteksten.
Eksempel 6
Ettersom de beskyttede variablene i foreldreklassen kan nås i barneklassen, som vi har sett i det nevnte programmet. Nå har vi tildelt den beskyttede modifikatoren til den ytre klassen og prøvd å få tilgang til den i Main () -metoden.
Vi har konstruert klassen “ProtectedCase2” med prefikset “beskyttet”. Klassen blir beskyttet for Java -programfilen. I den beskyttede klassen “ProtectedCase2” har vi distribuert “Print ()” -funksjonen, som inneholder utskriftsmeldingen. Etter det har vi en Main () -metode i klassen “ProtectedCase2”. Her har vi kalt "ProtectedCase2" -klassen for å lage sitt objekt, som er erklært som "PC", der vi har påkalt konstruktøren av klassen "ProtectedCase2" med det nye nøkkelordet. Deretter, ved å bruke objektet "print ()", har vi kalt "print ()" -metoden til den beskyttede klassen.
Samlingen av ovennevnte Java -program genererer feilen som den beskyttede klassen ikke kan tillates her.
Konklusjon
Vi spesifiserer beskyttede nøkkelord i henhold til den typen tilgang som forventes på kompileringstidspunktet. Den "beskyttede" tilgangsmodifisereren er veldig effektiv for den arvelige funksjonen som bruker samme klasse og attributter. Foreldreklassen og noen av sine underklasser for barn som bruker det beskyttede søkeordet har alltid et foreldre-barn-forhold. Vi har sett forskjellige tilfeller av den beskyttede tilgangsmodifisereren, som demonstrerer bruken av den i Java.