Inleiding tot toegangsmodificaties in Java

Zoals we allemaal weten, is Java een van de beste programmeertalen ter wereld. Miljarden apparaten vertrouwen er de laatste twee decennia op. Java is een snelle, betrouwbare, veilige en multi-platform taal. Java werkt op elk apparaat zolang dat apparaat Java Runtime (JRE) heeft, waardoor het multi-platform, snelle en betrouwbare taal is. Toegangsmodificator is eigendom van Java, waardoor het veilig is op meerdere platforms. Java biedt veiligheid op klassenniveau (tijdens inkapseling) aan de programmeur met behulp van de eigenschap toegangsmodificator. Volgens het boek is Class de blauwdruk voor het bouwen van een object in de Java, waardoor het 'Building block' voor het programma is, omdat Java een objectgeoriënteerde taal is. Een toegangsmodificator geeft aan hoe elke klasse toegang heeft tot een bepaalde klasse en zijn velden, constructors en methoden binnen en verschillende pakketten. Klasse, velden, constructors en methoden kunnen een van de vier verschillende Java-toegangsmodificatoren hebben.

  • Privaat
  • Openbaar
  • beschermde
  • Standaard - Geen trefwoord vereist.

Verschillende toegangsmodificaties in Java

De volgende tabel vat samen hoe we Java-toegangsmodificatoren op het programma kunnen toepassen:

modifiersKlassePakketjesSub-KlasseWereld
PrivaatYNNN
OpenbaarYYYY
beschermdeYYYN
StandaardYYNN

We behandelen elke Java-toegangsmodificator in de volgende secties.

1) Standaard

Wanneer een klasse, gegevensleden en de variabele worden gedeclareerd door niet te schrijven met een toegangsmodificator, wordt deze ingesteld op 'standaard' toegangsmodificator. De 'standaard'-toegangsmodificator betekent dat de code in elke klasse toegang heeft tot het hele programma binnen hetzelfde pakket.

  • Deze toegangsmodificator werkt alleen binnen hetzelfde pakket.
  • Soms wordt 'standaard' toegangsmodificator ook wel een pakkettoegangsmodifier genoemd, omdat deze alleen binnen hetzelfde pakket toegankelijk is.
  • Subklassen hebben geen toegang tot methoden, gegevensleden en variabelen (velden) in de superklasse, als deze methoden, gegevensleden en variabelen (velden) gemarkeerd met de 'standaard' toegangsmodificator in de klasse tenzij deze subklassen zich in hetzelfde pakket bevinden als de superklasse.

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

Output:

Hallo Wereld!

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

Output:

Compileer tijdfout.

2) Beschermd

Syntaxis 'beschermd' wordt gebruikt door gebruikers wanneer ze deze toegangsmodificator willen gebruiken.

  • Deze toegangsmodificator is alleen toegankelijk binnen hetzelfde pakket of dezelfde subklassen in verschillende klassen (maar gebruikers moeten dat pakket importeren waar het was opgegeven).
  • Gebruiker kan klasse en interfaces niet markeren met 'beveiligde' toegangsmodificator. Methoden en velden kunnen echter als beveiligd worden aangegeven als methoden en velden zich in een interface bevinden.

Bijvoorbeeld:

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

Output:

Hallo Wereld!

3) Openbaar

Gebruiker kan een klasse, methode, constructor en interface declareren met een 'openbare' toegangsmodificator, die toegang heeft tot elke klasse, methode, constructor en interface binnen of verschillende pakketten.

  • Deze toegangsmodificator heeft de Boundless onder alle modificatoren.
  • Wanneer een klasse, methode of pakket gemarkeerd met 'public' access modifier, waar het voor iedereen toegankelijk is vanuit het hele programma.
  • Er zijn geen beperkingen op het bereik van 'openbare' toegangsklasse, methoden.

Bijvoorbeeld: -

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

Output:

Hallo Wereld!

4) Privé

Wanneer een methode of variabele gemarkeerd als 'private' toegangsmodificatoren, dan heeft code binnen diezelfde klasse alleen toegang tot die methoden en variabelen.

Gebruiker kan geen superklasse declareren met 'private' toegangsmodificator in het programma en als de gebruiker dat doet met een klasse, dan maakt die klasse niet toegankelijk voor een andere klasse in hetzelfde pakket waardoor klasse geen gebruik van maakt gebruiker kan variabelen en methoden binnen de klasse declareren met 'private' toegangsmodificator, zodat niemand die variabelen en methoden niet kan gebruiken.

Af en toe raakten mensen in de war met 'privé' en 'beschermde' toegangsmodificator, maar ze zijn allebei verschillend.

Bijvoorbeeld: -

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

Output:

error: display () heeft privétoegang in eduCBA obj.display ();

Conclusie

Java access modifier geeft u een extra voorsprong op uw programma wanneer u het openbaar maakt. Zoals we hierboven hebben bestudeerd, Verschillende soorten toegangsmodificatoren in JAVA en hun specificatie.

Houd er dus rekening mee elke keer dat u een van hen gebruikt als toegang tot een klasse of interface omdat ze niet alleen toegang bieden, maar deze ook overschrijft. Hoewel er altijd bezorgdheid is over de toegankelijkheid van de methode in het programma. Als bijvoorbeeld een interface de 'standaard'-toegangsmodificator in de superklasse wordt toegewezen, is het toegestaan ​​om toegangsmodificatoren die in de subklasse van de methode worden gebruikt, te overschrijven.

Opmerking: Klasse bevat variabelen, constructors, velden en methoden en de interface bevat specifieke velden of methoden.

Aanbevolen artikelen

Dit is een handleiding voor toegangsmodificaties in Java. Hier bespreken we de verschillende soorten toegangsmodificaties in Java en hun specificatie. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. Objectgericht programmeren in Java
  2. Vragen over Java-sollicitaties
  3. Wat is synchronisatie in Java?
  4. Autoboxing en Unboxing in Java
  5. Toegangsmodificaties in C ++ (typen)
  6. Geweldige gids voor toegang tot modificaties in C #
  7. Toegang tot modificaties in PHP
  8. JRE vs JVM | Top 8 verschillen met (infographics)