logo

Java public ou privé

En Java, publique et privé sont mots clés qui sont connus comme un modificateur d'accès ou prescripteur . Il restreint la portée ou l'accessibilité d'une classe, constructeur , variables , méthode s et les données membres. Cela dépend de l'application. Java fournit les quatre types de modificateurs d'accès : public, privé, protégé , et défaut . Mais dans cette section, nous n'aborderons que deux secteurs publics et privés, et discuterons également des différence entre le spécificateur d'accès public et privé avec exemple.

Les modificateurs d'accès contrôlent si d'autres classes peuvent utiliser un champ particulier ou appeler une méthode particulière. Java fournit deux niveaux de contrôle d'accès :

    Haut niveau:A ce niveau, on ne peut utiliser qu'un publique Niveau de membre :A ce niveau, on peut utiliser public, privé, protégé et paquet-privé (si nous n'utilisons aucun modificateur explicite, on l'appelle package-private).

Le tableau suivant montre le niveau d'accès aux membres autorisé par les modificateurs public et privé.

parcours post-ordre de l'arbre binaire
Java public ou privé

Vous ne comprenez toujours pas les différences entre les deux ? Laissez-moi vous montrer une figure qui montre comment les niveaux d'accès affectent la visibilité. La figure suivante montre les deux packages p1 et p2 . Chaque package contient deux classes Démo1 et Démo2 (dans le package p1), et Démo3 et Démo4 (dans le colis p2).

Java public ou privé

Le tableau suivant décrit la visibilité des classes si nous rendons les classes publiques et privées une par une. Dans la figure ci-dessus, Demo1 est la seule classe visible pour chaque modificateur d'accès.

Java public ou privé

Discutons-en en détail.

Modificateur d'accès public

Il peut être spécifié en utilisant le publique mot-clé. Sa portée ou son accessibilité est la plus large parmi les autres spécificateurs d'accès. Les variables, classes et méthodes déclarées publiques sont accessibles depuis n'importe où dans le programme. Il n'impose pas de restrictions sur la portée des données publiques membres. Si nous déclarons les méthodes et les classes comme publiques, elles violent également le principe de encapsulation . Nous pouvons également l'utiliser avec les classes de haut niveau.

Utilisons le spécificateur d'accès privé dans un Programme Java pour une meilleure compréhension.

Démo1.java

polymorphisme en Java
 package p1; public class Demo1 { public void show() { System.out.println('Javatpoint'); } } 

Démo2.java

 package p2; import p1.*; class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); obj.show(); } } 

Sortir

 Javatpoint 

Modificateur d'accès privé

C'est l'opposé du modificateur public. Il peut être spécifié en utilisant le privé mot-clé suivi du nom de la classe (appliqué uniquement aux classes imbriquées) ou du nom de la méthode ou du membre de données. Nous ne pouvons pas utiliser le spécificateur d'accès privé avec les classes de niveau supérieur ou interfaces . Les variables, méthodes et classes déclarées comme privées sont accessibles uniquement dans la classe dans laquelle elles sont déclarées ou en héritant des classes parentes. Il s'agit du spécificateur d'accès le plus restreint de Java. C'est la forme d'encapsulation la plus élevée.

  • Nous ne pouvons pas passer outre les méthodes déclarées comme privées.
  • Si nous utilisons le modificateur private avec le constructeur, nous évitons qu'il soit sous-classé.
  • Il cache les classes des autres classes du même emballer .

Utilisons le spécificateur d'accès privé dans un programme Java pour une meilleure compréhension.

télécharger des vidéos YouTube sur VLC

Dans l'exemple suivant, nous avons déclaré deux classes : Demo1 et Demo2. Dans la classe Demo1, nous avons défini une méthode montrer() comme privé. La classe Demo2 contient la méthode main() dans laquelle nous avons créé un objet de la classe Demo1. Après cela, nous essayons d'accéder à la méthode privée de la classe Demo1 depuis la classe Demo2, ce n'est pas possible. Mais nous allons quand même exécuter le programme pour voir quelle erreur il affiche.

 class Demo1 { //defining method as private private void show() { System.out.println('Javatpoint'); } } public class Demo2 { public static void main(String args[]) { Demo1 obj = new Demo1(); //trying to access private method of the class Demo1 obj.show(); } } 

Lorsque nous exécutons le programme ci-dessus, il affiche l'erreur suivante :

Java public ou privé

Différence entre les spécificateurs d'accès public et privé en Java

La principale différence entre les modificateurs publics et privés est sa visibilité. Java catégorise la visibilité des membres de la classe comme suit :

  • Sous-classes dans le même package
  • Non-sous-classes dans le même package
  • Sous-classes dans différents packages
  • Classes ni dans le même package ni sous-classes
Java public ou privé

Lequel devrions-nous utiliser ?

Nous devons utiliser le modificateur d'accès public si nous voulons rendre la méthode ou la propriété visible de n'importe où, d'autres classes et instances de l'objet. Utilisez le modificateur d'accès privé si vous souhaitez rendre la méthode ou la propriété visible uniquement dans sa propre classe. Évitez les champs publics sauf pour les constantes.