Dans une entreprise, un employé Dupont
(son numéro de sécu 1 05 73 123 456 permet
son identification unique dans l’entreprise), est
employé sur un poste de technicien dans la société
X située à Biarritz.
Son état est caractérisé par l’ensemble
des valeurs de ses attributs.
- num sécu : 1 05 73 123 456
- nom : Dupont
- qualification : Technicien
- Lieu de travail : Biarritz
Son comportement est caractérisé par les
opérations qu’il peut réaliser :
- entrer/sortir de la société
- changer de qualification
- changer de lieu de travail
Bref, l’ensemble des opérations pouvant affecter
ses attributs.
Un peu de vocabulaire
Une classe est l’abstraction d’un ensemble d’objets
qui possèdent une structure identique (liste des
attributs) et un même comportement (liste des opérations).
C’est un modèle décrivant le contenu
et le comportement des futurs objets de la classe.
Un objet est une instance d’une et une seule classe.
Si l’on reprend l’exemple précédent,
la classe est l’employé, l’instance de
classe (l’objet) est l’employé
1 05 73 123 456, Dupont, …
Par rapport à une approche « classique »
que l’on peut observer dans la programmation procédurale,
l’approche objet se caractérise par le regroupement
dans une même classe de la description des attributs
et des opérations (méthodes). Ce regroupement
s’appelle l’encapsulation. On masque l’information
au monde extérieur.
Ce principe d’encapsulation améliore l’autonomie
et l’indépendance de chaque classe et augmente
le potentiel de réutilisation de chacune d’elles.
La visibilité des attributs et des opérations
d’une classe vis à vis d’autres porte
le nom d’interface.
Un objet est donc composé de données et d’opérations
(appelées méthodes) sur ces données.
C’est une variable de type abstrait représentant
une entité du domaine du problème.
Il se compose de deux parties :
- une partie interface composée d’opérations
que l’on peut faire dessus (partie publique)
– c’est cette partie qui est visible par les
utilisateurs de l’objet.
- une partie interne composées des données
sensibles de l’objet (partie privée).
Programmation Procédurale |
VARIABLE |
TYPE |
Programmation Orientée-Objet |
OBJET |
CLASSE |
Les avantages des propriétés ci-dessus sont
multiples :
- meilleure modularité. Les communications
entre objets sont réalisées par le biais d’opérations
d’interface.
- meilleure sécurité. Le code de
chaque méthode ne s’applique que sur les données
de l’objet. Certaines parties de l’objet ne
sont pas accessibles pour certains (et n’ont pas d’ailleurs
à être connues).
- meilleure conception. Les données et les
méthodes sont spécifiées en même
temps.
- meilleure lisibilité. Les données
et les méthodes sont décrites au même
endroit.
- meilleure portabilité. Les parties masquées
pourront être modifiées sans que l’utilisateur
n’ait à changer son code puisqu’il n’a
pas directement accès à celles-ci. C’est
ici que l’on pourra mettre les points dépendant
des machines.