Introduction aux modificateurs d'accès en Java

Comme nous le savons tous, Java est l'un des meilleurs langages de programmation au monde. Des milliards d'appareils en dépendent depuis deux décennies. Java est un langage rapide, fiable, sûr et multiplateforme. Java s'exécute sur n'importe quel appareil tant que cet appareil dispose de Java Runtime (JRE), ce qui en fait un langage multiplateforme, rapide et fiable. Le modificateur d'accès est la propriété de java, ce qui le rend sûr sur la multi-plateforme. Java offre une sécurité au niveau de la classe (pendant l'encapsulation) au programmeur en utilisant la propriété du modificateur d'accès. Selon le livre, la classe est le modèle de construction d'un objet en Java, ce qui en fait un «bloc de construction» pour le programme, car Java est un langage orienté objet. Un modificateur d'accès spécifie comment n'importe quelle classe peut accéder à une classe donnée et à ses champs, constructeurs et méthodes au sein de différents packages. La classe, les champs, les constructeurs et les méthodes peuvent avoir l'un des quatre modificateurs d'accès Java différents.

  • Privé
  • Publique
  • Protégé
  • Par défaut - Aucun mot clé requis.

Différents modificateurs d'accès en Java

Le tableau suivant résume comment appliquer des modificateurs d'accès Java au programme:

ModificateursClassePaquetsSous-classeMonde
PrivéOuiNNN
PubliqueOuiOuiOuiOui
ProtégéOuiOuiOuiN
DéfautOuiOuiNN

Nous couvrirons chaque modificateur d'accès Java dans les sections suivantes.

1) Par défaut

Lorsqu'une classe, des membres de données et la variable sont déclarés en n'écrivant pas avec un modificateur d'accès, ils sont définis sur le modificateur d'accès «par défaut». Le modificateur d'accès «par défaut» signifie que le code à l'intérieur de n'importe quelle classe peut accéder à l'ensemble du programme dans le même package.

  • Ce modificateur d'accès fonctionne uniquement dans le même package.
  • Parfois, le modificateur d'accès «par défaut» est également appelé modificateur d'accès au package, car il n'est accessible que dans le même package.
  • Les sous-classes ne peuvent pas accéder aux méthodes, aux membres de données et aux variables (champs) dans la superclasse, si ces méthodes, membres de données et variables (champs) sont marqués avec le modificateur d'accès «par défaut» dans la classe, sauf si ces sous-classes se trouvent dans le même package que le superclasse.

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

Production:

Bonjour le monde!

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

Production:

Erreur de compilation.

2) Protégé

La syntaxe «protégé» est utilisée par les utilisateurs lorsqu'ils souhaitent utiliser ce modificateur d'accès.

  • Ce modificateur d'accès n'est accessible que dans le même package ou les mêmes sous-classes dans différentes classes (mais les utilisateurs doivent importer ce package là où il a été spécifié).
  • L'utilisateur ne peut pas marquer la classe et les interfaces avec le modificateur d'accès «protégé». Cependant, les méthodes et les champs peuvent être déclarés comme protégés si les méthodes et les champs sont dans une interface.

Par exemple:

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

Production:

Bonjour le monde!

3) Public

L'utilisateur peut déclarer une classe, une méthode, un constructeur et une interface avec un modificateur d'accès «public», qui peut accéder par n'importe quelle classe, méthode, constructeur et interface au sein de packages différents.

  • Ce modificateur d'accès a le Boundless parmi tous les modificateurs.
  • Lorsqu'une classe, une méthode ou un package est marqué avec un modificateur d'accès «public», où il est accessible à tout le monde, partout dans le programme.
  • Il n'y a aucune limitation sur la portée des méthodes de classe d'accès «publique».

Par exemple: -

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

Production:

Bonjour le monde!

4) Privé

Lorsqu'une méthode ou une variable marquée comme modificateurs d'accès «privés», le code à l'intérieur de cette même classe ne peut accéder qu'à ces méthodes et variables.

L'utilisateur ne peut déclarer aucune super-classe avec un modificateur d'accès «privé» dans le programme et si l'utilisateur le fait avec n'importe quelle classe, il rend cette classe inaccessible à toute autre classe du même package, ce qui rend la classe inutilisable bien que l'utilisateur peut déclarer des variables et des méthodes au sein de la classe avec un modificateur d'accès «privé» afin que quiconque ne puisse pas utiliser ces variables et méthodes.

Parfois, les gens se sont confondus avec un modificateur d'accès «privé» et «protégé», mais ils sont tous les deux différents.

Par exemple: -

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

Production:

erreur: display () a un accès privé dans eduCBA obj.display ();

Conclusion

Le modificateur d'accès Java vous donne un avantage supplémentaire sur votre programme lorsque vous le rendez public. Comme nous l'avons étudié ci-dessus, Différents types de modificateurs d'accès dans JAVA et leurs spécifications.

Gardez donc à l'esprit chaque fois que vous utilisez l'un d'eux comme accès à une classe ou à une interface, car ils fournissent non seulement un accès, mais les remplacent également. Bien qu'il y ait toujours une préoccupation concernant l'accessibilité de la méthode dans le programme. Par exemple, si une interface se voit attribuer le modificateur d'accès «par défaut» dans la superclasse, elle est autorisée à remplacer les modificateurs d'accès utilisés dans la sous-classe de la méthode.

Remarque: La classe comprend des variables, des constructeurs, des champs et des méthodes, et l'interface comprend des champs ou des méthodes spécifiques.

Articles recommandés

Ceci est un guide des modificateurs d'accès en Java. Nous discutons ici des différents types de modificateurs d'accès en java et de leurs spécifications. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Programmation orientée objet en Java
  2. Questions d'entretiens chez Java
  3. Qu'est-ce que la synchronisation en Java?
  4. Autoboxing et Unboxing en Java
  5. Modificateurs d'accès en C ++ (Types)
  6. Guide étonnant pour accéder aux modificateurs en C #
  7. Modificateurs d'accès en PHP
  8. JRE vs JVM | 8 principales différences avec (infographie)