Les modificateurs d'accès font partie des notions de base à connaître sur l'écriture et l'utilisation des classes en Java. Ce tutoriel s'adresse aux débutants en Java.
1. Modificateurs d’Accès en
Java
Niveau 1: Notions de base
Mohamed Bah
Développeur – Consultant formateur
Application Graphique/Web/Mobile : Python – Java – PHP – JavaScript
batobad@yahoo.fr
2. Introduction
• Java est un langage de programmation très populaire
• Il permet de développer des applications modulaires et robustes en utilisant les concepts de la
programmation Orientée Objet
• Pour élargir ou restreindre l’usage d’une classe et ses membres (attributs, constructeurs et
méthodes) en Java, on utilise des mots clés du langage appelés « modificateurs d’accès ».
• Dans ce tutoriel, nous aborderons les différents types de modificateurs Java, puis, nous
mettrons l’accent sur les modificateurs d’accès qui sont l’objet de cette présentation.
• Un tutoriel sera consacré aux autres types de modificateurs qui ne seront pas abordés ici.
• Nous espérons que ce tutoriel vous permettra de mieux comprendre les modificateurs d’accès
Java en exploitant les exemples qui illustrent le cours.
• Cette présentation ne se substitue pas à la document officielle sur le sujet. Ce n’est qu’un
auxiliaire pour aider ceux qui sont débutant en programmation Java à bien maîtriser les
concepts de base du langage.
• Nous sommes ouverts à toutes les critiques et suggestions permettant de rendre ce support
meilleur.
3. Les Modificateurs Java
Il y a deux types de modificateurs en Java: les modificateurs d’accès et les non modificateurs d’accès
Modificateurs d’accès:
Les modificateurs d’accès spécifient la portée d’une donnée membre (attribut), d’une méthode, d’un constructeur
ou d’une classe.
On distingue quatre (4) types de modificateurs d’accès qui sont:
default: accessible (visible) dans le package. L’élément ne doit être précédé d’aucun modificateur d’accès
public: accessible dans la classe, dans les sous-classes, dans le même package et partout ailleurs
private: la visibilité est restreinte à la classe uniquement
protected: accessible dans classe, dans les sous-classes, dans les classes du même package
4. Les Modificateurs Java
Il y a deux types de modificateurs en Java: les modificateurs d’accès et les non modificateurs d’accès
Non modificateurs d’accès:
Java fournit de nombreux autres modificateurs qui ne sont pas des modificateurs d’accès pour réaliser de
nombreuses autres fonctionnalités.
static: modificateur pour la création des variables et des méthodes de classe
final: une classe final ne peut pas être héritée par une sous-classe. Une méthode final ne peut être redéfinie par
une sous classe. Une variable final est une constante, c’est-à-dire que sa valeur ne pourra plus être modifiée dans le
programme.
abstrac: sert à la création de classes et de méthodes abstraites
synchronize et volatil : utilisés pour les threads en Java
6. Les Modificateurs Java
Modificateur d’accès private
• L’utilisation du modificateur d’accès private est la meilleure manière d’encapsuler un objet
en cachant les détails d’implémentation au monde extérieur.
NB: Les classes et les interfaces ne peuvent être private
•Le modificateur d’accès private est le niveau de restriction le plus élevé en Java.
•Les méthodes, les variables et les constructeurs qui sont déclarés private ne peuvent être
accessibles que dans la classe où ils sont déclarés.
•Toute tentative d’accès à un de ces éléments en dehors de la classe se soldera par une erreur.
•Pour accéder à une variable private en dehors de la classe où elle est déclarée, il faut utiliser
une méthode d’accès (getter) prévue à cet effet
8. Modificateurs d’accès
Modificateur d’accès private
Erreurs de compilation
1
2
Classe
ModificateurPrivate.java
TestModificateurPrivate.java
Permet d’exécuter ModificateurPrivate.java
Dans le on essaie d’accéder aux membres private
de la classe ModificateurPrivate, ce qui provoque
une erreur de compilation comme on peut le voir.
2
10. Modificateurs d’accès
Modificateur d’accès private
1
2
On accède aux variables private de la class ModificateurPrivate dans la class TestModificateurPrivate en
utilisant des getters qui sont des interfaces publiques prévues à cet effet.
Appel de getName()
13. Modificateurs d’accès
Constructeur private
1
2
Appel du constructeur privé
Erreur de compilation
Lorsqu’une classe possède un
constructeur explicite, alors le
constructeur implicite ne peut
plus être appelé
Si le constructeur explicite est
private, toute tentative
d’instanciation d’un objet se
soldera par une erreur de
compilation
15. Modificateurs d’accès public
Attributs public
1
2
Accès à l’attribut public nom en dehors de
sa classe sans getter et il n’y a pas
d’erreur de compilation
Attention ! Ceci n’est pas conseillé pour les attributs
car il y a violation du principe d’encapsulation
17. Modificateurs d’accès protected
Attributs protected
1
2
Accès à l’attribut protected unPrenom en
dehors de sa classe sans getter et il n’y a
pas d’erreur de compilation
Ceci est possible parce que les deux classes sont dans le même
paquetage: sn.allBah.modificateurprotected Résultat
unPrenom: Jean Paul