Vous êtes sur la page 1sur 7

developpement-informatique.

com

Modificateurs d'accès Java - public, private, protected et


package
Developpement-informatique.com

6-8 minutes

Modificateurs d'accès Java - public, private, protected et package

Les modificateurs sont des mots-clés que vous ajoutez à ces définitions pour en changer le sens. Le

langage Java comporte une grande variété de modificateurs, notamment:

   Modificateurs d'accès Java

   Modificateurs sans accès

Pour utiliser un modificateur, vous devez inclure son mot-clé dans la définition d'une classe, d'une

méthode ou d'une variable.

Exemple 1 :

1 public class Personne {

2     private String nom;

3     private int age;

4     private static double salaire;

5     public Personne(String nom, int age) {

6         this.nom = nom;

7         this.age = age;

8     }

9     public static void main(String args[]) {

10         salaire = 1000;

11         System.out.println("Département " + DEPARTMENT + " Salaire : " +


salaire);
12     }

13 }

14

15

16

17

18

19

20

21

22

Modificateurs d'accès Java

Java fournit un certain nombre de modificateurs d'accès permettant de définir les niveaux d'accès pour

les classes, les variables, les méthodes et les constructeurs. Les quatre niveaux d’accès sont :

    Visible pour le package, la valeur par défaut. Aucun modificateur n'est nécessaire.

    Visible seulement par la classe (private).

    Visible à tout le monde (public).

    Visible pour le package et toutes les sous-classes (protected).

Modificateur d'accès par défaut - Aucun mot clé

Le modificateur d'accès par défaut signifie que nous ne déclarons pas explicitement un modificateur

d'accès pour une classe, un champ, une méthode, etc.

Une variable ou une méthode déclarée sans modificateur de contrôle d'accès est disponible pour toute

autre classe du même package. Les champs d'une interface sont implicitement public static final et les

méthodes d'une interface sont par défaut public.

Exemple 2 :

Les variables et les méthodes peuvent être déclarées sans aucun modificateur
1 public class Test{

2     int val1;

3     void afficher(){

4     }

5 }

Modificateur d'accès privé - private

Les méthodes, les variables et les constructeurs déclarés privés ne sont accessibles que dans la classe

déclarée elle-même.

Le modificateur d'accès privé est le niveau d'accès le plus restrictif. La classe et les interfaces ne

peuvent pas être privées.

Les variables déclarées privées sont accessibles en dehors de la classe si des méthodes de lecture

publiques sont présentes dans la classe. (getters setters )

L'utilisation du modificateur privé est la moyenne principale par laquelle un objet s'encapsule et cache

les données du monde extérieur.

Exemple 3 :

1 public class Personne {

2     private String nom;

3     public Personne(String nom) {

4         this.nom = nom;

5     }

6     public String getNom(){

7         return nom;

8     }
9     public void setNom(String nom){

10         this.nom=nom

11     }

12 }

13

14

15

Ici, la variable "nom" de la classe "Personne" est privée, il est donc impossible pour les autres classes

d'extraire ou de modifier directement sa valeur.

Donc, pour rendre cette variable disponible au monde extérieur, nous avons défini deux méthodes

publiques: getNom(), qui retourne la valeur de "nom", et setNom(String), qui définit sa valeur.

Modificateur d'accès publique - public

Une classe, une méthode, un constructeur, une interface, etc. déclarée publique peut être accessible à

partir de n'importe quelle autre classe. Par conséquent, les champs, les méthodes et les blocs déclarés

dans une classe publique sont accessibles à partir de toute classe appartenant à l'univers Java.

Toutefois, si la classe publique à laquelle vous essayez d'accéder se trouve dans un package différent,

elle doit toujours être importée.

En raison de l'héritage, toutes les méthodes et variables publiques d'une classe sont héritées par ses

sous-classes.

Exemple 4 :

1 public class Test{

2     public static void main(String args[]){

3     }

4 }

6
La méthode main() d'une application doit être publique. Sinon, il ne pourrait pas être appelé par un

interpréteur Java pour exécuter la classe.

Modificateur d'accès protégé - protected

Les variables, méthodes et constructeurs déclarés protégés dans une superclasse sont accessibles

uniquement aux sous-classes d'un autre package ou de toute classe du package de la classe des

membres protégés.

Le modificateur d'accès protégé ne peut pas être appliqué à la classe et aux interfaces. Les méthodes

et les champs peuvent être déclarés protégés. Toutefois, les méthodes et les champs d'une interface ne

peuvent pas être déclarés protégés.

L'accès protégé donne à la sous-classe une chance d'utiliser la méthode d'assistance(Helper) ou la

variable, tout en empêchant une classe non liée d'essayer de l'utiliser.

Exemple 5 :

Dans cet exemple, nous allons créer deux packages p1 et p2. La classe A en p1 est rendue publique,

pour y accéder en p2. La méthode afficher() dans la classe A est protégée et la classe B est héritée de

la classe A. Vous pouvez ensuite accéder à cette méthode protégée en créant un objet de la classe B.

2 package p1;

3 public class A

4 {

5     protected void afficher()

6     {

7         System.out.println("Take it easy");

8     }

9 }

10
1 package p2;

2 import p1.*;

3 class B extends A

4 {

5     public static void main(String args[])

6     {  

7         B obj = new B();  

8         obj.afficher();  

9     }  

10 }

11

12

13

Contrôle d'accès et héritage

Les règles suivantes pour les méthodes héritées sont appliquées

  Les méthodes déclarées publiques dans une super-classe doivent également être publiques

dans toutes les sous-classes.

  Les méthodes déclarées protégées dans une superclasse doivent être soit protégées, soit

publiques dans les sous-classes; elles ne peuvent pas être privées.

  Les méthodes déclarées privées ne sont pas du tout héritées, il n'y a donc pas de règle pour

elles.

Partager ce cours avec tes amis :


The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor,

nurture and inspire.

Vous aimerez peut-être aussi