SlideShare une entreprise Scribd logo
1  sur  19
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
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.
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
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
Les Modificateurs Java
Niveau de restriction des modificateurs d’accès
Plus
restrictifs
Moins
restrictifs
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
Modificateurs d’accès
Modificateur d’accès private
Ici les variables nom et age sont
private
Accès aux variables private
nom et age dans la même
classe
Résultat
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
Modificateurs d’accès
Modificateur d’accès private
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()
Modificateurs d’accès
Méthode private
Modificateurs d’accès
Constructeur private
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
Modificateurs d’accès public
Classes, attributs, méthodes
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
Modificateurs d’accès protected
Modificateur d’accès public
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
Modificateurs d’accès default
default = ni public, ni private, ni protected
Modificateurs d’accès
Le tableau ci-dessus résume les cas d’usage des modificateurs d’cccèss
public private protecte Non spécifié = default
Classe Permis Interdit Interdit Permis
Constructeur Permis Permis Permis Permis
Méthode Permis Permis Permis Permis
Attribut Permis Permis Permis Permis

Contenu connexe

Tendances

Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Saâd Zerhouni
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiqueOussama Yoshiki
 
Présentation de mon PFE
Présentation de mon PFEPrésentation de mon PFE
Présentation de mon PFENadir Haouari
 
Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...Ayoub Mkharbach
 
Projet de fin d'etude sur le parc informatique
Projet  de fin d'etude sur le parc informatiqueProjet  de fin d'etude sur le parc informatique
Projet de fin d'etude sur le parc informatiqueHicham Ben
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Gestion d’une agence de voyage routière (Blondel Seumo)
Gestion d’une  agence  de  voyage  routière (Blondel Seumo)Gestion d’une  agence  de  voyage  routière (Blondel Seumo)
Gestion d’une agence de voyage routière (Blondel Seumo)Gantner Technologies
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Nawres Farhat
 
A la découverte de vue.js
A la découverte de vue.jsA la découverte de vue.js
A la découverte de vue.jsBruno Bonnin
 

Tendances (20)

Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C#
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatique
 
Présentation de mon PFE
Présentation de mon PFEPrésentation de mon PFE
Présentation de mon PFE
 
Cours java
Cours javaCours java
Cours java
 
Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...Présentation pfe - Etude, conception et réalisation d'une application web de ...
Présentation pfe - Etude, conception et réalisation d'une application web de ...
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Projet de fin d'etude sur le parc informatique
Projet  de fin d'etude sur le parc informatiqueProjet  de fin d'etude sur le parc informatique
Projet de fin d'etude sur le parc informatique
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
projet de conception.pptx
projet de conception.pptxprojet de conception.pptx
projet de conception.pptx
 
Gestion d’une agence de voyage routière (Blondel Seumo)
Gestion d’une  agence  de  voyage  routière (Blondel Seumo)Gestion d’une  agence  de  voyage  routière (Blondel Seumo)
Gestion d’une agence de voyage routière (Blondel Seumo)
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
 
A la découverte de vue.js
A la découverte de vue.jsA la découverte de vue.js
A la découverte de vue.js
 
Diagramme d'activité en UML
Diagramme d'activité en UMLDiagramme d'activité en UML
Diagramme d'activité en UML
 

Similaire à Modificateurs d'accès en java

Introduction java
Introduction javaIntroduction java
Introduction javaFouad Root
 
Fonctions_Inline_Amies en C++
Fonctions_Inline_Amies en C++Fonctions_Inline_Amies en C++
Fonctions_Inline_Amies en C++ANOUAR HAKIM
 
E portfolio moodlemootfr2011 (ppt)
E portfolio moodlemootfr2011 (ppt)E portfolio moodlemootfr2011 (ppt)
E portfolio moodlemootfr2011 (ppt)Dominique-Alain JAN
 
c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)Mahfoud EL HOUDAIGUI
 
Programmation orientée objet avancée
Programmation orientée objet avancéeProgrammation orientée objet avancée
Programmation orientée objet avancéeMahfoud EL HOUDAIGUI
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfLarbaSAWADOGO2
 
Abstract_vs_Interface.pdf
Abstract_vs_Interface.pdfAbstract_vs_Interface.pdf
Abstract_vs_Interface.pdfScott Anderson
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10Jean-Michel Doudoux
 
Devoxx 2018 Après Java 8, Java 9 et 10
Devoxx 2018 Après Java 8, Java 9 et 10Devoxx 2018 Après Java 8, Java 9 et 10
Devoxx 2018 Après Java 8, Java 9 et 10Jean-Michel Doudoux
 
Alphorm.com Formation TypeScript
Alphorm.com Formation TypeScriptAlphorm.com Formation TypeScript
Alphorm.com Formation TypeScriptAlphorm
 
Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018Jean-Michel Doudoux
 

Similaire à Modificateurs d'accès en java (20)

XB-Java.ppt
XB-Java.pptXB-Java.ppt
XB-Java.ppt
 
Chapitre3 2013 POO
Chapitre3 2013 POOChapitre3 2013 POO
Chapitre3 2013 POO
 
Introduction java
Introduction javaIntroduction java
Introduction java
 
Fonctions_Inline_Amies en C++
Fonctions_Inline_Amies en C++Fonctions_Inline_Amies en C++
Fonctions_Inline_Amies en C++
 
E portfolio moodlemootfr2011 (ppt)
E portfolio moodlemootfr2011 (ppt)E portfolio moodlemootfr2011 (ppt)
E portfolio moodlemootfr2011 (ppt)
 
c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)
 
Programmation Java
Programmation JavaProgrammation Java
Programmation Java
 
Le framework-executor
Le framework-executorLe framework-executor
Le framework-executor
 
Programmation orientée objet avancée
Programmation orientée objet avancéeProgrammation orientée objet avancée
Programmation orientée objet avancée
 
Cours de JAVA de base
Cours de JAVA  de baseCours de JAVA  de base
Cours de JAVA de base
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
 
Abstract_vs_Interface.pdf
Abstract_vs_Interface.pdfAbstract_vs_Interface.pdf
Abstract_vs_Interface.pdf
 
Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
 
POO-Cours.pdf
POO-Cours.pdfPOO-Cours.pdf
POO-Cours.pdf
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10
 
Download
DownloadDownload
Download
 
Devoxx 2018 Après Java 8, Java 9 et 10
Devoxx 2018 Après Java 8, Java 9 et 10Devoxx 2018 Après Java 8, Java 9 et 10
Devoxx 2018 Après Java 8, Java 9 et 10
 
Alphorm.com Formation TypeScript
Alphorm.com Formation TypeScriptAlphorm.com Formation TypeScript
Alphorm.com Formation TypeScript
 
Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018Apres java 8, java 9 et 10 - BreizhCamp 2018
Apres java 8, java 9 et 10 - BreizhCamp 2018
 

Modificateurs d'accès 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
  • 5. Les Modificateurs Java Niveau de restriction des modificateurs d’accès Plus restrictifs Moins restrictifs
  • 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
  • 7. Modificateurs d’accès Modificateur d’accès private Ici les variables nom et age sont private Accès aux variables private nom et age dans la même classe Résultat
  • 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
  • 18. Modificateurs d’accès default default = ni public, ni private, ni protected
  • 19. Modificateurs d’accès Le tableau ci-dessus résume les cas d’usage des modificateurs d’cccèss public private protecte Non spécifié = default Classe Permis Interdit Interdit Permis Constructeur Permis Permis Permis Permis Méthode Permis Permis Permis Permis Attribut Permis Permis Permis Permis