logo

Tilgang Modifikatorer i Java

i Java bidrar Access-modifikatorer til å begrense omfanget av en klasse, konstruktør, variabel, metode eller datamedlem. Det gir sikkerhet, tilgjengelighet osv. til brukeren avhengig av tilgangsmodifikatoren som brukes med elementet. La oss lære om Java Access Modifiers, deres typer og bruken av tilgangsmodifikatorer i denne artikkelen.

Typer tilgangsmodifikatorer i Java

Det er fire typer tilgangsmodifikatorer tilgjengelig i Java:



  1. Standard – Ingen nøkkelord kreves
  2. Privat
  3. Beskyttet
  4. Offentlig

1. Standard tilgangsmodifikator

Når ingen tilgangsmodifikator er spesifisert for en klasse, metode eller datamedlem – sies det å ha misligholde tilgangsmodifikator som standard. Datamedlemmene, klassene eller metodene som ikke er deklarert ved bruk av noen tilgangsmodifikatorer, dvs. som har standard tilgangsmodifikatorer, er tilgjengelige kun i samme pakke .

I dette eksemplet vil vi lage to pakker og klassene i pakkene vil ha standard tilgangsmodifikatorer og vi vil prøve å få tilgang til en klasse fra en pakke fra en klasse i den andre pakken.

Program 1:



Java
// Java program to illustrate default modifier  package p1;  // Class Geek is having Default access modifier  class Geek  {   void display()   {   System.out.println('Hello World!');   }  }>


Program 2:

manuell testing
Java
// Java program to illustrate error while  // using class from different package with  // default modifier  package p2;  import p1.*;  // This class is having default access modifier  class GeekNew  {   public static void main(String args[])   {   // Accessing class Geek from package p1   Geek obj = new Geek();   obj.display();   }  }>

Produksjon:

Compile time error>

2. Modifikator for privat tilgang

Modifikatoren for privat tilgang spesifiseres ved hjelp av nøkkelordet privat . Metodene eller datamedlemmene som er erklært som private er bare tilgjengelige innenfor klassen der de er deklarert.



  • Hvilken som helst annen klasse av de samme pakke vil ikke få tilgang disse medlemmene.
  • Toppnivåklasser eller grensesnitt kan ikke erklæres som private fordi
    • privat betyr kun synlig innenfor den omsluttende klassen.
    • beskyttet betyr kun synlig innenfor den omsluttende klassen og eventuelle underklasser

Derfor gjelder disse modifikatorene når det gjelder bruk på klasser, bare for nestede klasser og ikke på toppnivåklasser

I dette eksemplet vil vi lage to klasse A og B i samme pakke p1. Vi vil erklære en metode i klasse A som privat og prøve å få tilgang til denne metoden fra klasse B og se resultatet.

anaconda vs python slange
Java
// Java program to illustrate error while // Using class from different package with // Private Modifier package p1; // Class A class A {  private void display()  {  System.out.println('techcodeview.com');  } } // Class B class B {  public static void main(String args[])  {  A obj = new A();  // Trying to access private method  // of another class  obj.display();  } }>

Produksjon:

error: display() has private access in A  obj.display();>

3. Protected Access Modifier

Modifikatoren for beskyttet tilgang er spesifisert med nøkkelordet beskyttet .

Metodene eller datamedlemmene som er erklært som beskyttet er tilgjengelig innenfor samme pakke eller underklasser i forskjellige pakker.

I dette eksemplet vil vi lage to pakker p1 og p2. Klasse A i p1 er offentliggjort for å få tilgang til den i p2. Metodevisningen i klasse A er beskyttet og klasse B arves fra klasse A, og denne beskyttede metoden åpnes deretter ved å opprette et objekt av klasse B.

Program 1:

Java
// Java Program to Illustrate // Protected Modifier package p1; // Class A public class A {  protected void display()  {  System.out.println('techcodeview.com');  } }>


Program 2:

Java
// Java program to illustrate // protected modifier package p2; // importing all classes in package p1 import p1.*;  // Class B is subclass of A class B extends A {  public static void main(String args[])  {  B obj = new B();  obj.display();  } }>

Produksjon:

techcodeview.com>

Modifikator for offentlig tilgang

Modifikatoren for offentlig tilgang er spesifisert med nøkkelordet offentlig .

hva er kataloginnsending
  • Modifikatoren for offentlig tilgang har bredeste omfang blant alle andre tilgangsmodifikatorer.
  • Klasser, metoder eller datamedlemmer som er erklært som offentlige er tilgjengelig fra overalt i programmet. Det er ingen begrensning på omfanget av offentlige datamedlemmer.

Program 1:

Java
// Java program to illustrate  // public modifier  package p1;  public class A  {  public void display()   {   System.out.println('techcodeview.com');   }  }>

Program 2:

Java
package p2; import p1.*; class B {  public static void main(String args[])  {  A obj = new A();  obj.display();  } }>

Produksjon:

techcodeview.com>

Viktige punkter:

  • Hvis andre programmerere bruker klassen din, prøv å bruke det mest restriktive tilgangsnivået som gir mening for et bestemt medlem. Bruk privat med mindre du har en god grunn til å la være.
  • Unngå offentlige felt bortsett fra konstanter.

Algoritme for å bruke tilgangsmodifikator i Java

Her er en grunnleggende algoritme for bruk av tilgangsmodifikatorer i Java:

  • Definer en klasse: Lag en klasse som representerer objektet du vil administrere.
  • Definer forekomstvariabler: Innenfor klassen definerer du forekomstvariabler som representerer dataene du vil administrere.
  • Spesifiser en tilgangsmodifikator: For hver forekomstvariabel, spesifiser en tilgangsmodifikator som bestemmer synligheten til variabelen. De tre hovedtilgangsmodifikatorene i Java er private, beskyttede og offentlige.
  • Bruk private for variabler som bare skal være tilgjengelige innenfor klassen: Hvis du vil forhindre tilgang til en variabel fra utenfor klassen, bruk modifikatoren for privat tilgang. Dette er den mest restriktive tilgangsmodifikatoren og gir det høyeste nivået av innkapsling.
  • Bruk beskyttet for variabler som skal være tilgjengelige innenfor klassen og dens underklasser : Hvis du vil tillate tilgang til en variabel fra klassen og dens underklasser, bruk modifikatoren for beskyttet tilgang. Dette er mindre restriktivt enn privat og gir en viss grad av arv.
  • Bruk offentlig for variabler som skal være tilgjengelige fra hvor som helst : Hvis du vil tillate tilgang til en variabel fra hvor som helst, bruk modifikatoren for offentlig tilgang. Dette er den minst restriktive tilgangsmodifikatoren og gir minst mulig innkapsling.
  • Bruk tilgangs- og mutatormetoder for å administrere tilgang til variablene: For å få tilgang til og modifisere variablene, bruk accessor (getter) og mutator (setter) metoder, selv om variablene har en offentlig tilgang modifikator. Dette gir et abstraksjonsnivå og gjør koden din mer vedlikeholdbar og testbar.

Vanlige spørsmål i Access Modifiers

1. Hva er tilgangsmodifikatorer i Java?

Tilgangsmodifikatorer i Java er nøkkelordene som brukes for å kontrollere bruken av metodene, konstruktørene, feltene og metodene i en klasse.

2. Hva er void i Java?

Void i Java brukes til å angi ingen returverdi med metoden.

3. Hva er de 12 modifikatorene i Java?

12 Modifikatorer i Java er offentlige, private, beskyttede, standard, endelige, synkroniserte, abstrakte, native, strictfp, forbigående og flyktige.