0% ont trouvé ce document utile (0 vote)
25 vues25 pages

Cours Java LY Partie 3

Le document présente une introduction à la programmation orientée objet (POO) en Java, abordant des concepts clés tels que les classes, objets, constructeurs, encapsulation, héritage, polymorphisme, classes abstraites et interfaces. Il explique comment modéliser des objets réels, définir leurs attributs et méthodes, ainsi que l'importance de l'encapsulation pour la sécurité et l'intégrité des données. Des exemples concrets illustrent la création et l'utilisation d'objets en Java.

Transféré par

ngomdaouda99
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
25 vues25 pages

Cours Java LY Partie 3

Le document présente une introduction à la programmation orientée objet (POO) en Java, abordant des concepts clés tels que les classes, objets, constructeurs, encapsulation, héritage, polymorphisme, classes abstraites et interfaces. Il explique comment modéliser des objets réels, définir leurs attributs et méthodes, ainsi que l'importance de l'encapsulation pour la sécurité et l'intégrité des données. Des exemples concrets illustrent la création et l'utilisation d'objets en Java.

Transféré par

ngomdaouda99
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Alioune DIOP

UFR SATIC – Licence 2 SRT

Introduction à Java
Dr Lamine YADE
[Link]@[Link]

Année académique 2024-2025


Chapitre 3: POO
1. Qu’est ce que la POO ?
2. Classe & Objet
3. Constructeur
4. Encapsulation
5. Héritage
6. Polymorphisme
7. Classe Abstraite
8. Interface
Qu’est ce que la POO ?
La programmation orientée objet (POO) modélise des objets réels.

Chaque objet a :
 des attributs (données)
 des méthodes (actions ou comportements).

La POO consistera donc à définir les différents acteurs=Entités


(objets), leurs caractéristiques et comportements et à les faire
interagir.
Qu’est ce que la POO ?
Principe:
 Placer les entités, objets ou acteurs du problème à la base de la conception

 Etudier les traitements comme des interactions entre les différentes entités

 Penser aux données AVANT de penser aux traitements

 Penser un programme en modélisant le monde tel qu’il nous apparaît

 Définir des objets et les faire interagir


Classe & Objet
 En POO, toutes les variables sont des objets associés à une classe

 Une classe est un type


 qui se veut plus complexe que juste un nombre ou un caractère

 Un objet est une collection


 de données membres (ou attributs)
 de fonctions membres manipulant les données membres (ou méthodes)

 On peut créer autant d’objets de classe (i.e. de variables du type décrit par la
classe) que l’on veut

 Un objet est aussi appelé une instance de classe


Classe & Objet
 Exemple:
 Classes/Entités
• Personne(Nom, prenom, age, taille)
• Telephone(Num, marque, sonnerie, repertoire, operateur)
• Voiture(Plaque, marque, couleur, vitesse)
Classe & Objet
 Exemple:

La classe(Entité) Personne(Nom, prenom, taille, age) définit


• Les attributs d’une personne (nom, prenom, taille, âge…)
• Les comportements d’une personne (Parler, marcher, boire…)

Il peut exister dans le monde plusieurs objets (ou instances) d’une personne
Le Constructeur
 En java, les variables doivent être initialisées

 Or la déclaration des attributs n’inclut généralement pas d’initialisation

 De plus, comment pourrait-on connaître à l’avance la valeur des différentes


variables membres, puisqu’elle sera propre à chaque instance (objet) de la
classe? (Chaque voiture a sa propre marque, sa propre couleur et sa propre
vitesse)

 Il faut donc définir dans la classe un mécanisme permettant de donner une


valeur aux variables membres (aux états) de l’objet

 Ce mécanisme s’appelle le « constructeur »


Le Constructeur
Une classe doit toujours avoir au minimum un constructeur

Le constructeur recevra les valeurs à attribuer aux variables et les


y affectera

Le constructeur servira ainsi à « matérialiser » la classe et sera


donc appelé chaque fois qu’un objet de la classe doit être créé

Le constructeur est donc la « Recette » pour fabriquer un objet

C’est une méthode spéciale appelée à la création d'un objet.


Le Constructeur
Signature d’un constructeur

 Modificateur d’accès: public

 Pas de type de retour

 même nom que la classe

 Les arguments sont utilisés


pour initialiser les variables
de la classe
Le Constructeur
 On peut surcharger les constructeurs,

 c.à.d. définir plusieurs constructeurs; mais ne doivent pas avoir le même


nombre d’argument

 « Plusieurs recettes existent pour fabriquer un même objet avec des


ingrédients différents »

 Il existe toujours un constructeur. S’il n’est pas explicitement défini, il sera un


constructeur par défaut, sans arguments
Le Constructeur
 On peut surcharger les constructeurs

 Exemple:
Création d’objets
 Notons toutefois qu’il ne « se passe » toujours rien dans notre programme à ce
stade (la classe Personne).

 En effet, nous avons conçu une classe, avec ses caractéristiques et les
constructeurs, mais nous n’avons toujours créé aucun objet.

 Nous n’avons en fait encore que défini ce que seraient une personne.

 Pour qu’il « se passe » quelque chose, il faudrait donc que nous matérialisions
nos classes, autrement dit que nous les instancions, ce qui signifie que nous
« créions des objets »

 Pour ce faire, il faut appeler le constructeur de la classe dont nous souhaitons


créer une instance.
Création d’objets
 L’appel au constructeur
 Se fait pour initialiser un objet
➔ Provoque la création réelle de l’objet en mémoire
➔ Par l’initialisation de ses variables internes propres
 Se fait par l’emploi du mot clé « new »
Affichage d’objets:
 Affichons les deux objets (person1 et person2) créés:
Affichage d’objets: méthode toString()
 La fonction membre spéciale toString() retourne la chaîne de caractère qu’il
faut afficher lorsque l’on appelle la fonction [Link](objet) sur l’objet.
Affichage d’objets:
 Affichage des deux personnes.
Encapsulation: Déclaration des attributs
Toute variable doit être déclarée et initialisée

Les variables membres sont des variables déclarées à l’intérieur


du corps de la classe mais à l’extérieur d’une méthode particulière,
c’est ce qui les rend accessibles depuis n’importe où dans la classe.

La signature de la variable :


• Les modificateurs d’accès: indiquent le niveau d’accessibilité de la variable
• [static]: permet la déclaration d’une variable de classe
• [final]: empêche la modification de la variable (➔ Crée une constante)
• [transient]: on ne tient pas compte de la variable en sérialisant l’objet
• [volatile]: pour le multithreading
• Le type de la variable (ex: int, String, double, boolean,…)
• Le nom de la variable (identificateur)
Encapsulation: Déclaration des attributs
Les modificateurs d’accès qui caractérisent l’encapsulation sont
justifiées par différents éléments:

Préservation de la sécurité des données


• Les données privées sont simplement inaccessibles de l’extérieur
• Elles ne peuvent donc être lues ou modifiées que par les méthodes
d’accès rendues publiques

Préservation de l’intégrité des données


• La modification directe de la valeur d’une variable privée étant impossible,
seule la modification à travers des méthodes spécifiquement conçues est
possible, ce qui permet de mettre en place des mécanismes de
vérification et de validation des valeurs de la variable
Encapsulation: Déclaration des attributs

Les modificateurs d’accès qui caractérisent l’encapsulation sont


justifiées par différents éléments:

Cohérence des systèmes développés en équipes

• Les développeurs de classes extérieures ne font appel qu’aux méthodes


et, pour ce faire, n’ont besoin que de connaître la signature.

• Leur code est donc indépendant de l’implémentation des méthodes


Encapsulation: Déclaration des attributs
En java, les modificateurs d’accès sont utilisés pour protéger l’accessibilité des
attributs et des méthodes. Les accès sont contrôlés en respectant le tableau
suivant:
Encapsulation: les Accesseurs
 De manière générale, on évitera de déclarer un attribut “public”

 Ou alors, n’importe qui pourra modifier la variable.

 Les données doivent donc être privées. On utilise des getters/setters pour y
accéder de manière sécurisée.

 Principe:
• Déclaration : private type variable;

• Getter: public type getViriable() {}


Retoune la valeur de l’attribut

• Setter: public void setViriable(type nouvellValeur) {}


Modifie la valeur de l’attribut
Encapsulation: les Accesseurs
 Exemple:
Encapsulation: les Accesseurs

 On peut aussi paramétrer les accès en utilisant les packages : seules les
classes du même package (que vous contrôlez vous même!!!) pourront modifier
les variables packagées.

 Pour packager une variable, une méthode ou une classe, ne mettez aucun accesseur
devant celle-ci. Créez juste un package (c.à.d. un répertoire dans le système de fichiers)
et déclarez que votre classe appartient au package au tout début du fichier via :

package nomdepackage;

Vous aimerez peut-être aussi