Introduktion til Access Modifiers i Java

Som vi alle ved, er Java et af de bedste programmeringssprog i verden. Milliarder enheder er afhængige af det i de sidste to årtier. Java er et hurtigt, pålideligt, sikkert og multi-platform sprog. Java kører på enhver enhed, så længe enheden har Java Runtime (JRE), hvilket gør det til flere platforme, hurtigt og pålideligt sprog. Adgangsmodifikator tilhører java, hvilket gør det sikkert på tværs af multiplatformen. Java leverer sikkerhed på klasseniveau (under indkapsling) til programmereren ved hjælp af adgangsmodificeringsegenskab. I henhold til bogen er klasse en plan for at opbygge et objekt i java, hvilket gør det til 'Byggesten' til programmet, da Java er et objektorienteret sprog. En adgangsmodifier specificerer, hvordan enhver klasse kan få adgang til en given klasse og dens felter, konstruktører og metoder inden for og forskellige pakker. Klasse, felter, konstruktører og metoder kan have en af ​​fire forskellige Java-adgangsmodifikatorer.

  • Privat
  • Offentlig
  • Beskyttet
  • Standard - Intet nøgleord kræves.

Forskellige adgangsmodifikatorer i Java

Følgende tabel opsummerer, hvordan vi kan anvende Java-adgangsmodifikatorer til programmet:

modifiersklassepakkerSub-klasseVerden
PrivatYNNN
OffentligYYYY
BeskyttetYYYN
StandardYYNN

Vi dækker hver Java-adgangsmodifikator i de følgende afsnit.

1) Standard

Når en klasse, datamedlemmer og variablen erklæres ved ikke at skrive med en adgangsmodifikator, er den indstillet til 'standard' adgangsmodifikator. "Standard" -adgangsmodifikatoren betyder, at koden i enhver klasse kan få adgang til hele programmet i den samme pakke.

  • Denne adgangsmodifikator fungerer kun i den samme pakke.
  • Nogle gange kaldes 'standard' adgangsmodifikator også en pakkeadgangsmodifikator, da det kun er tilgængeligt i den samme pakke.
  • Underklasser kan ikke få adgang til metoder, datamedlemmer og variabler (felter) i superklassen, hvis disse metoder, datamedlemmer og variabler (felter) markeret med 'standard' adgangsmodifikator i klassen, medmindre disse underklasser er placeret i den samme pakke som superklasse.

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!");
)
)

Produktion:

Hej 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();
)
)

Produktion:

Compiler tidsfejl.

2) Beskyttet

Syntaks 'beskyttet' bruges af brugere, når de vil bruge denne adgangsmodifikator.

  • Denne adgangsmodifikator er kun tilgængelig inden for den samme pakke eller de samme underklasser i forskellige klasser (men brugere skal importere den pakke, hvor den blev specificeret).
  • Brugeren kan ikke markere klasse og grænseflader med 'beskyttet' adgangsmodifikator. Metoder og felter kan dog erklæres som beskyttet, hvis metoder og felter er i en grænseflade.

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();
)
)

Produktion:

Hej Verden!

3) Offentligt

Bruger kan erklære en klasse, metode, konstruktør og interface med en 'offentlig' adgangsmodifikator, som kan få adgang til enhver klasse, metode, konstruktør og interface i eller forskellige pakker.

  • Denne adgangsmodifikator har grænseløs blandt alle modifikatorer.
  • Når en klasse, metoder eller pakke markeret med 'offentlig' adgangsmodifikator, hvor den er tilgængelig for alle overalt fra programmet.
  • Der er ingen begrænsninger i omfanget af 'offentlige' adgangsklasser, 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 ();
)
)

Produktion:

Hej Verden!

4) Privat

Når en metode eller variabel markeret som 'private' adgangsmodifikatorer, kan kode inden for den samme klasse kun få adgang til disse metoder og variabler.

Brugeren kan ikke erklære nogen superklasse med 'privat' adgangsmodifikator i programmet, og hvis brugeren gør det med en klasse, så gør den denne klasse ikke tilgængelig for nogen anden klasse i den samme pakke, hvilket gør klasse ikke til brug selv om bruger kan erklære variabler og metoder inden for klassen med 'privat' adgangsmodifikator, så enhver ikke kan bruge disse variabler og metoder.

Lejlighedsvis blev folk forvirrede med 'privat' og 'beskyttet' adgangsmodifikator, men de er begge forskellige.

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();
)
)

Produktion:

fejl: display () har privat adgang i eduCBA obj.display ();

Konklusion

Java-adgangsmodifikator giver dig en ekstra fordel over dit program, når du offentliggør det. Som vi studerer ovenfor, forskellige typer adgangsmodifikatorer i JAVA og deres specifikation.

Så husk, hver gang du bruger en af ​​dem som en klasse- eller interface-adgang, da de ikke kun giver adgang, men også tilsidesætter dem. Selvom der altid er bekymring for tilgængeligheden af ​​metoden i programmet. For eksempel, hvis en grænseflade er tildelt 'standard' adgangsmodifikator i superklassen, er det tilladt at tilsidesætte adgangsmodifikatorer, der bruges i metodens underklasse.

Bemærk: Klassen inkluderer variabler, konstruktører, felter og metoder, og grænsefladen inkluderer specifikke felter eller metoder.

Anbefalede artikler

Dette er en guide til Access Modifiers i Java. Her diskuterer vi de forskellige typer adgangsmodifikatorer i java og deres specifikation. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. Objektorienteret programmering i Java
  2. Spørgsmål om Java-interview
  3. Hvad er synkronisering i Java?
  4. Autoboxing og Unboxing i Java
  5. Adgang modifikatorer i C ++ (typer)
  6. Fantastisk guide til adgang til modifikatorer i C #
  7. Få adgang til modifikatorer i PHP
  8. JRE vs JVM | Top 8 forskelle med (Infographics)

Kategori: