Introduksjon til Access Modifiers i Java

Som vi alle vet, er Java et av de beste programmeringsspråkene i verden. Milliarder enheter er avhengige av det de siste to tiårene. Java er et raskt, pålitelig, trygt og multiplattformspråk. Java kjører på alle enheter så lenge enheten har Java Runtime (JRE), noe som gjør det til flere plattformer, raskt og pålitelig språk. Tilgangsmodifiserer tilhører java, noe som gjør det trygt på flere plattformer. Java gir klassen sikkerhet (under innkapsling) til programmereren ved å bruke tilgangsmodifiseringsegenskapen. I følge boka er Class blåkopien for å bygge et objekt i java, noe som gjør det til 'Byggestein' for programmet ettersom Java er et objektorientert språk. En tilgangsmodifiserer spesifiserer hvordan enhver klasse kan få tilgang til en gitt klasse og dens felt, konstruktører og metoder i og forskjellige pakker. Klasse, felt, konstruktører og metoder kan ha en av fire forskjellige Java-tilgangsmodifiserere.

  • Privat
  • Offentlig
  • beskyttet
  • Standard - Ingen nøkkelord kreves.

Ulike tilgangsmodifiserere i Java

Tabellen nedenfor oppsummerer hvordan vi kan bruke Java-tilgangsmodifiserere på programmet:

modifikatorerKlassepakkerUndergruppenVerden
PrivatYNNN
OffentligYYYY
beskyttetYYYN
MisligholdeYYNN

Vi vil dekke hver Java-tilgangsmodifiserer i de følgende seksjonene.

1) Standard

Når en klasse, datamedlemmer og variabelen blir erklært ved å ikke skrive med en tilgangsmodifiserer, er den satt til 'standard' tilgangsmodifiserer. "Standard" tilgangsmodifiserer betyr at koden i hvilken som helst klasse kan få tilgang til hele programmet i samme pakke.

  • Denne tilgangsmodifisereren fungerer bare i samme pakke.
  • Noen ganger blir "standard" -tilgangsmodifiserer også referert til som en pakke-tilgangsmodifiserer, ettersom den bare er tilgjengelig i samme pakke.
  • Underklasser har ikke tilgang til metoder, datamedlemmer og variabler (felt) i superklassen, hvis disse metodene, datamedlemmene og variablene (feltene) er merket med 'standard' tilgangsmodifiserer i klassen, med mindre disse underklassene ligger i samme pakke som super.

Eksempel 1:

//Java program to show the default modifier.
package Test;
//Where Class eduCBA is having Default access modifier as no access modifier is specified here
class eduCBA
(
void display ()
(
System.out.println("Hello World!");
)
)

Produksjon:

Hei Verden!

Eksempel 2:

//Java program to show error while using class from different package with default modifier
package test2;
import test.*;
//This class check is having default access modifier
class Check
(
public static void main(String args())
(
//accessing class eduCBA from package test
eduCBA obj = new eduCBA();
obj.display();
)
)

Produksjon:

Kompiler tidsfeil.

2) Beskyttet

Syntaks 'beskyttet' brukes av brukere når de vil bruke denne tilgangsmodifisereren.

  • Denne tilgangsmodifisereren er bare tilgjengelig i samme pakke eller samme underklasser i forskjellige klasser (men brukere må importere den pakken der den ble spesifisert).
  • Brukeren kan ikke merke klasse og grensesnitt med 'beskyttet' tilgangsmodifiserer. Metoder og felt kan imidlertid deklareres som beskyttet Hvis metoder og felt er i et grensesnitt.

For eksempel:

//Java program to show to protected access modifier
package test;
//Class eduCBA
public class eduCBA
(
protected void display ()
(
System.out.println("Hello World!");
)
)
//Java program to show to protected modifier in same sub-classes of different packages
package test2;
import test.*;
//Class pro is subclass of eduCBA
class pro extends eduCBA
(
public static void main(String args())
(
pro obj = new pro();
obj.display();
)
)

Produksjon:

Hei Verden!

3) Offentlig

Bruker kan erklære en klasse, metode, konstruktør og grensesnitt med en 'offentlig' tilgangsmodifiserer, som kan få tilgang til hvilken som helst klasse, metode, konstruktør og grensesnitt i eller forskjellige pakker.

  • Denne tilgangsmodifisereren har grenseløs blant alle modifiserere.
  • Når en hvilken som helst klasse, metoder eller pakke merket med 'offentlig' tilgangsmodifiserer, der den er tilgjengelig for alle fra overalt fra programmet.
  • Det er ingen begrensninger i omfanget av 'offentlige' tilgangsklasser, metoder.

For eksempel: -

//Java program to show to public access modifier
package test;
public class eduCBA
(
public void display ()
(
System.out.println("Hello World!");
)
)
package test2;
import test.*;
class pub
(
public static void main (String args ())
(
eduCBA obj = new eduCBA ();
obj.display ();
)
)

Produksjon:

Hei Verden!

4) Privat

Når en metode eller variabel merket som 'private' tilgangsmodifiserere, kan kode i den samme klassen bare få tilgang til disse metodene og variablene.

Bruker kan ikke erklære noen superklasse med 'privat' tilgangsmodifiserer i programmet, og hvis brukeren gjør det med noen klasse, så gjør den den klassen ikke tilgjengelig for noen annen klasse i samme pakke som gjør at klassen ikke er i bruk selv om bruker kan erklære variabler og metoder i klassen med 'privat' tilgangsmodifiserer slik at ingen kan bruke disse variablene og metodene.

Noen ganger ble folk forvirret med 'privat' og 'beskyttet' tilgangsmodifiserer, men begge deler er forskjellige.

For eksempel: -

//Program to show error while using a class from different packages with private modifier.
package test;
class eduCBA
(
private void display()
(
System.out.println("Hello World!");
)
)
class Check
(
public static void main (String args())
(
eduCBA obj = new eduCBA();
//make class check to access private method of another class eduCBA.
obj.display();
)
)

Produksjon:

feil: display () har privat tilgang i eduCBA obj.display ();

Konklusjon

Java-tilgangsmodifiserer gir deg en ekstra fordel for programmet ditt når du gjør det offentlig. Som vi studerer ovenfor, Ulike typer tilgangsmodifiserere i JAVA og spesifikasjonen deres.

Så husk hver gang du bruker en av dem som en klasse- eller grensesnitttilgang, da de ikke bare gir tilgang, men også overstyrer dem. Selv om det alltid er bekymring for tilgjengeligheten til metoden i programmet. For eksempel, hvis et grensesnitt er tilordnet 'standard' tilgangsmodifiserer i superklassen, er det tillatt å overstyre tilgangsmodifiserere som brukes i metodens underklasse.

Merk: Klassen inkluderer variabler, konstruktører, felt og metoder, og grensesnittet inkluderer spesifikke felt eller metoder.

Anbefalte artikler

Dette er en guide til Access Modifiers i Java. Her diskuterer vi de forskjellige typene tilgangsmodifiserere i java og deres spesifikasjoner. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. Objektorientert programmering i Java
  2. Spørsmål om Java-intervju
  3. Hva er synkronisering i Java?
  4. Autoboksing og Unboxing i Java
  5. Få tilgang til modifikatorer i C ++ (typer)
  6. Fantastisk guide for tilgang til modifikatorer i C #
  7. Få tilgang til modifikatorer i PHP
  8. JRE vs JVM | Topp 8 forskjeller med (Infographics)