Maison >Java >javaDidacticiel >Modificateurs d'accès en Java

Modificateurs d'accès en Java

WBOY
WBOYoriginal
2024-08-30 15:59:15388parcourir

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 à condition que cet appareil dispose de Java Runtime (JRE), ce qui le rend multiplateforme, rapide et fiable. Le modificateur d'accès est la propriété de Java, ce qui le rend sécurisé sur plusieurs plates-formes. Java fournit 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 « élément de base » 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.

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

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

Différents modificateurs d'accès en Java

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

Modifiers Class Packages Sub-Class World
Private Y N N N
Public Y Y Y Y
Protected Y Y Y N
Default Y Y N N

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

1. Par défaut

Lorsqu'une classe, un membre de données et une variable sont déclarés sans écrire avec un modificateur d'accès, ils sont alors 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'intégralité du programme dans le même package.

  • Ce modificateur d'accès fonctionne uniquement dans le même package.
  • Parfois, un 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 pouvaient pas accéder aux méthodes, aux données membres et aux variables (champs) de la superclasse si ces méthodes, données membres et variables (champs) sont marqués avec le modificateur d'accès « par défaut » dans la classe, à moins que ces sous-classes ne soient situées dans le même package que la superclasse.

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

Sortie :

Bonjour tout le monde !

Exemple n°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();
}
}

Sortie :

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 dans les mêmes sous-classes dans différentes classes (mais les utilisateurs doivent importer ce package là où il a été spécifié).
  • Les utilisateurs ne peuvent pas marquer la classe et les interfaces avec un 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();
}
}

Sortie :

Bonjour tout le monde !

3. Publique

Les utilisateurs peuvent déclarer une classe, une méthode, un constructeur et une interface avec un modificateur d'accès « public », auquel peuvent accéder par n'importe quelle classe, méthode, constructeur et interface dans ou différents packages.

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

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

Sortie :

Bonjour tout le monde !

4. Privé

Lorsqu'une méthode ou une variable est 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. Si l'utilisateur le fait avec n'importe quelle classe, cela rend cette classe inaccessible à toute autre classe du même package, ce qui rend la classe inutile. Cependant, 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 étaient confondus avec les modificateurs d'accès « privé » et « protégé », mais ils sont tous 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();
}
}

Sortie :

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 étudions ci-dessus, différents types de modificateurs d'accès en JAVA et leur spécification.

Gardez donc à l’esprit chaque fois que vous utilisez l’un d’entre eux comme accès à une classe ou à une interface, car ils ne fournissent pas seulement un accès, mais les remplacent également. Certes, il y a toujours un souci 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 peut 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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Classe abstraite en JavaArticle suivant:Classe abstraite en Java