Vous êtes sur la page 1sur 65

Introduction à la programmation

orientée objet
Pr. ABNANE Ibtissam

09/01/2024 ABNANE Ibtissam 1


Object oriented programming

Software design approach in which concepts of objects occupies the first


place
Everything is an object

09/01/2024 ABNANE Ibtissam 2


Object oriented programming
Programming paradigm that organizes software design around objects

An approach used to solve problems with code

09/01/2024 ABNANE Ibtissam 3


Object oriented programming

09/01/2024 ABNANE Ibtissam 4


Object oriented programming

Class

09/01/2024 ABNANE Ibtissam 5


Object oriented programming

09/01/2024 ABNANE Ibtissam 6


Object oriented programming

09/01/2024 ABNANE Ibtissam 7


Object oriented programming

q In the C code, functions operate on structures


representing shapes. However, in Java, each shape
is represented as an object with its own set of
methods.
q Each shape encapsulates its properties (width,
height, radius) and provides a method
(calculateArea()) to calculate its area.
• Rectangle class encapsulates the properties
width and height.
• Circle class encapsulates the property radius.
q Abstraction: The usage of interfaces (Shape) and
classes implementing them (Rectangle and Circle)
provides a level of abstraction (calculateArea())

09/01/2024 ABNANE Ibtissam 8


Object oriented programming

09/01/2024 ABNANE Ibtissam 9


Object oriented programming

09/01/2024 ABNANE Ibtissam 10


Structred Progrmming Paradigm
Exemple 1
Supposons que vous entreprenez les activités suivantes sur une base quotidienne. On veut Classer cette liste
dans un ordre raisonnable, puis la diviser en trois blocs d'activités connexes et donner à chaque bloc un
titre qui résume les activités effectuées dans ce bloc.

1. Sortir du lit
2. Prendre le petit-déjeuner
3. Garer la voiture
4. S'habiller
5. Sortir la voiture du garage
6. Aller au travail en voiture
7. Découvrir les taches du jour
8. Faire les taches requises

09/01/2024 ABNANE Ibtissam 11


Structred Progrmming Paradigm
Exemple 1
Se lever :
• Sortir du lit
• S'habiller
• Prendre son petit-déjeuner
Aller au travail :
• Sortir la voiture du garage
• Aller au travail en voiture
• Garer la voiture
Faites votre travail :
• Découvrir les taches du jour
• Faire les taches requises

09/01/2024 ABNANE Ibtissam 12


Structred Progrmming Paradigm
Exemple 1
Se lever :
• Sortir du lit
Avantages
• S'habiller On peut modifier et améliorer une section des instructions
• Prendre son petit-déjeuner sans modifier les autres parties.
Aller au travail : Par exemple, nous pouvons améliorer les instructions pour
• Sortir la voiture du garage aller au travail.....
• Écoutez les informations sur le trafic local et la météo pour
• Aller au travail en voiture décider si vous allez en bus ou en voiture.
• Garer la voiture • Si vous allez en voiture, prenez la voiture et allez au travail.
Faites votre travail : • Sinon, marchez jusqu'à la gare routière et prenez le bus.
• Découvrir les taches du jour
• Faire les taches requises

09/01/2024 ABNANE Ibtissam 13


Structred Progrmming Paradigm
Exemple 1
Avantages
Se lever : On peut modifier et améliorer une section des instructions
• Sortir du lit sans modifier les autres parties.
• S'habiller Par exemple, nous pouvons améliorer les instructions pour
• Prendre son petit-déjeuner aller au travail:
Aller au travail :
• Écouter les informations sur le trafic local et la météo pour
• Sortir la voiture du garage décider si vous allez en bus ou en voiture.
• Aller au travail en voiture • Si vous allez en voiture, prendre la voiture et aller au
• Garer la voiture travail.
• Sinon, marcher jusqu'à la gare routière et prendre le bus.
Faites votre travail :
• Découvrir les taches du jour De la même manière, la structuration des programmes
• Faire les taches requises informatiques peut rendre chaque partie plus
compréhensible et faciliter la maintenance des grands
programmes.
09/01/2024 ABNANE Ibtissam 14
Object oriented programming
Exemple 2:

• Imaginez un carnet d'adresses personnel avec quelques données stockées sur


vos amis : Nom, adresse, numéro de téléphone.

• Citez trois choses que vous pourriez faire avec ce carnet d'adresses.

• Identifiez ensuite quelqu'un d'autre qui pourrait utiliser un carnet d'adresses


identique à des fins autres que le stockage d'une liste d'amis.

09/01/2024 ABNANE Ibtissam 15


Object oriented programming
Exemple 2:

• Un carnet d'adresses personnel avec quelques données stockées sur vos amis
Nom, adresse, numéro de téléphone.

• Citer trois choses qu’on peut faire avec ce carnet d'adresses.

09/01/2024 ABNANE Ibtissam 16


Object oriented programming
Exemple 2:

• Un carnet d'adresses personnel avec quelques données stockées sur vos amis
Nom, adresse, numéro de téléphone.
• Citer trois choses qu’on peut faire avec ce carnet d'adresses.

Avec un carnet d'adresses, on peut: trouver les coordonnées d'un ami, ajouter une adresse au carnet d'adresses ou,
supprimer une adresse.
On peut créer un composant logiciel simple pour stocker les données dans le carnet d'adresses (c'est-à-dire une liste de
noms, etc.) et les opérations que nous pouvons effectuer (c'est-à-dire ajouter une adresse, trouver un numéro de téléphone,
etc.)

09/01/2024 ABNANE Ibtissam 17


Object oriented programming

• En créant un composant logiciel simple pour stocker et gérer les adresses d'amis, on peut
le réutiliser dans un autre système logiciel.
• Par exemple, il pourrait être utilisé par un directeur commercial pour stocker et trouver
des détails sur les clients. Il pourrait également faire partie d'un système de bibliothèque
et être utilisé par un bibliothécaire pour stocker et retrouver les détails des utilisateurs de
la bibliothèque.
• Ainsi, la programmation orientée objet nous permet de créer des composants
logiciels réutilisables (dans ce cas, un carnet d'adresses).

09/01/2024 ABNANE Ibtissam 18


Pourquoi le POO?
• Le paradigme orienté objet s'appuie sur les idées qui sous-tendent le
paradigme de la programmation structurée et les étend.
• Généralement, ce n'est pas la création du code qui est la source de la plupart
des problèmes. La plupart des problèmes proviennent de :

• Mauvaise analyse et conception : le système informatique que nous créons


ne fait pas ce qu'il faut.
• Mauvaise maintenabilité : le système est difficile à comprendre et à réviser
lorsque, comme c'est inévitable, des demandes de changement surviennent.

09/01/2024 ABNANE Ibtissam 19


Object oriented programming

• Les statistiques montrent que 70 % du coût d'un logiciel n'est pas supporté
pendant sa phase de développement initiale, mais au cours des années
suivantes.
• lorsque le logiciel est modifié pour répondre aux besoins en constante
évolution de l'organisation pour laquelle il a été développé.
• Le paradigme de la programmation orientée objet vise à surmonter ces
problèmes en facilitant les tâches d'analyse et de conception au cours de la
phase initiale de développement du logiciel et en garantissant la robustesse
et la facilité de maintenance du logiciel.

09/01/2024 ABNANE Ibtissam 20


Object oriented programming

• L'abstraction et l'encapsulation sont des principes fondamentaux de


l'approche orientée objet du développement de logiciels.
• L'abstraction nous permet de considérer des idées complexes tout en
ignorant les détails non pertinents.
• L'encapsulation nous permet de nous concentrer sur ce que fait une chose
sans tenir compte des complexités de son fonctionnement.

09/01/2024 ABNANE Ibtissam 21


Object oriented programming
Exemple 3:
Supposons qu’on veut créer une application bancaire et que l'on vous
demande de collecter toutes les informations sur votre client.

09/01/2024 ABNANE Ibtissam 22


Object oriented programming
Mais toutes les informations ci-dessus ne sont pas nécessaires pour créer une
application bancaire.
Þsélectionner dans ce pool uniquement les informations utiles à votre
application bancaire. exemple d'abstraction dans les POO.
ÞL'abstraction nous permet de prendre en compte les détails importants
de haut niveau, sans nous perdre dans les détails.

09/01/2024 ABNANE Ibtissam 23


Object oriented programming

Exemple 4:

• Pensez à votre maison et notez un article, tel qu'un téléviseur, que vous
utilisez quotidiennement (et décrivez brièvement comment vous faites
fonctionner cet article).

• Réfléchissez maintenant à la difficulté de décrire les composants internes de


cet appareil et de donner tous les détails techniques de son fonctionnement.

09/01/2024 ABNANE Ibtissam 24


Object oriented programming
• Il est beaucoup plus facile de décrire le fonctionnement d'un téléviseur que de décrire ses
composants internes et d'expliquer en détail son fonctionnement exact. La plupart des
gens ne connaissent même pas tous les composants des appareils qu'ils utilisent ni leur
fonctionnement - mais cela ne les empêche pas d'utiliser des appareils tous les jours.
• Vous ne connaissez peut-être pas les détails techniques tels que le câblage des
interrupteurs et leur fonctionnement interne, mais vous pouvez quand même allumer et
éteindre les lumières de votre maison (et de tout nouveau bâtiment dans lequel vous
entrez)
• L'encapsulation nous permet de considérer ce que fait un interrupteur et comment
nous l'utilisons, sans avoir à nous soucier des détails techniques de son
fonctionnement réel.

09/01/2024 ABNANE Ibtissam 25


Object oriented programming
• Deux autres principes fondamentaux de l'orientation objet sont la
généralisation/spécialisation (qui nous permet d'utiliser l'héritage) et le
polymorphisme.

• La généralisation nous permet de considérer des catégories générales


d'objets qui ont des propriétés communes, puis de définir des sous-classes
spécialisées qui héritent des propriétés des catégories générales.

09/01/2024 ABNANE Ibtissam 26


Object oriented programming
Exemple 5:
• Considérez les personnes qui travaillent dans un hôpital
• Listez trois professions communes de personnes que vous vous attendez à
voir employées dans cet hôpital.

09/01/2024 ABNANE Ibtissam 27


Object oriented programming

Médecin :
• Médecin stagiaire, médecin junior, chirurgien, radiologue, etc.

Infirmier :
• Infirmière de triage, sage-femme, infirmière de salle d'opération.

Nettoyeur :
• Nettoyeur général Superviseur du nettoyage

09/01/2024 ABNANE Ibtissam 28


Object oriented programming

• Faire une déclaration sur les médecins que considérée comme vraie pour
tous les médecins
• Faire une déclaration sur les chirurgiens qui ne serait pas vraie pour tous
les médecins.

09/01/2024 ABNANE Ibtissam 29


Object oriented programming

• On peut affirmer que tous les médecins ont une connaissance des médicaments, qu'ils peuvent
diagnostiquer des problèmes médicaux et prescrire les médicaments appropriés.
• Pour les chirurgiens, on peut dire qu'ils savent utiliser des scalpels et d'autres équipements
spécialisés et qu'ils peuvent effectuer des opérations.
• Tous les chirurgiens sont des médecins et ont donc une connaissance des conditions médicales et
peuvent prescrire les médicaments appropriés. Cependant, tous les médecins ne sont pas des
chirurgiens et ne peuvent donc pas tous pratiquer des opérations.
• Ce que nous spécifions comme étant vrai pour les médecins l'est également pour les médecins en
formation, les jeunes médecins, etc. - ces catégories (ou classes) spécialisées peuvent hériter des
attributs et des comportements associés à la classe plus générale de "médecin".

09/01/2024 ABNANE Ibtissam 30


Object oriented programming

La généralisation / spécialisation nous permet de définir les caractéristiques


et les opérations générales d'un objet et nous permet de créer des versions plus
spécialisées de cet objet.
Les versions spécialisées de cet objet hériteront automatiquement de toutes
les caractéristiques de l'objet plus généralisé.

09/01/2024 ABNANE Ibtissam 31


Object oriented programming

• Le dernier principe de la programmation orienté objet est le


polymorphisme, qui est la capacité d'interagir avec un objet dans sa
catégorie généralisée, indépendamment de sa catégorie plus spécialisée.
• Faire une déclaration sur la manière dont un directeur d'hôpital peut interagir
avec tous les médecins employés dans son hôpital, quel que soit le type de
médecin.

09/01/2024 ABNANE Ibtissam 32


Object oriented programming
Un directeur d'hôpital doit payer tous les médecins et qu'il puisse prendre des mesures
disciplinaires à l'encontre de tout médecin coupable de mauvaise conduite - bien entendu,
cela s'applique également aux autres membres du personnel.
Il s'agit d'une tâche que la direction devrait accomplir pour tous les médecins, quelle
que soit leur spécialité.
• En outre, si l'hôpital employait un nouveau médecin spécialiste (par exemple un
neurologue), sans savoir quoi que ce soit de spécifique sur cette spécialité, la direction de
l'hôpital saurait quand même que a) ce personnel doit être payé et b) son inscription
médicale doit être vérifiée.
• En d'autres termes, il s'agit toujours de médecins et ils doivent être traités comme tels.

09/01/2024 ABNANE Ibtissam 33


Object oriented programming

En utilisant la même idée, le polymorphisme permet d'étendre les systèmes


informatiques, en créant de nouveaux objets spécialisés, tout en permettant
aux parties actuelles du système d'interagir avec les nouveaux objets sans se
soucier des propriétés spécifiques de ces derniers.

09/01/2024 ABNANE Ibtissam 34


Object oriented programming
• Pensez à un objet que vous possédez. Décrivez son état actuel et énumérez
deux ou trois choses que vous pouvez faire avec cet objet.
• Exemple: montre, un stylo ou une voiture.
• Les objets ont un état actuel. Une montre a une heure. Un stylo contient
une certaine quantité d'encre et son couvercle est ouvert ou fermé. Une
voiture a une vitesse actuelle et contient une certaine quantité de carburant.
• Un comportement spécifique peut également être associé à chaque objet
(ce que l'on peut faire avec) : - une montre peut être vérifiée pour connaître
son heure, son heure peut également être réglée. Un stylo peut être utilisé
pour écrire et une voiture peut être conduite.

09/01/2024 ABNANE Ibtissam 35


Object oriented programming

Les objets peuvent être non physiques


• Exemple: compte bancaire.
• Un compte bancaire n'est pas quelque chose que l'on peut toucher physiquement, mais intellectuellement
nous pouvons considérer un compte bancaire comme un objet.
• Il a également un état actuel (le montant d'argent qu'il contient) et un comportement qui lui est associé (le
plus évident étant de déposer de l'argent et d'en retirer).

09/01/2024 ABNANE Ibtissam 36


Object oriented programming

• La programmation orientée objet est une méthode de programmation qui implique la création d'objets
intellectuels qui modélisent un problème que nous essayons de résoudre (par exemple, un compte bancaire,
un client de banque et un directeur de banque, qui pourraient tous être des objets dans un système bancaire
informatisé). Avec chaque objet, nous modélisons les données qui lui sont associées (c'est-à-dire son état à
un moment donné) et le comportement qui lui est associé (ce que notre programme informatique doit
permettre à cet objet de faire).
• En créant un programme orienté objet, nous définissons les propriétés d'une classe d'objets (par exemple,
tous les comptes bancaires), puis nous créons des objets individuels à partir de cette classe (par exemple,
votre compte bancaire)

09/01/2024 ABNANE Ibtissam 37


Object oriented programming
• Une "classe" est une conception logicielle qui décrit les propriétés générales
d'un objet que le logiciel modélise.
• Des "objets" individuels sont créés à partir de la conception de la classe pour
chaque objet réel.
class

objet objet objet

09/01/2024 ABNANE Ibtissam 38


Object oriented programming
• Décider des classes à créer dans notre système n'est pas une tâche triviale
car le monde réel est complexe et désordonné. En substance, nous devons
créer un modèle abstrait du monde réel qui se concentre sur les aspects
essentiels d'un problème et ignore les complexités non pertinentes.
• Si nous devions créer un système de comptes bancaires, devrions-nous
autoriser les clients à emprunter de l'argent ? Devrions-nous reconnaître que
leur argent peut être volé et intégrer une méthode leur permettant d'obtenir
un prêt immédiat - ou s'agit-il d'un détail non pertinent qui ne ferait
qu'ajouter de la complexité au système et n'apporterait aucun avantage réel à
la banque ?

09/01/2024 ABNANE Ibtissam 39


Object oriented programming
En utilisant les techniques d'analyse et de conception orientées objet, notre
travail consisterait à observer le monde réel et à en tirer un modèle abstrait
simplifié que nous pourrions transformer en système informatique. La qualité
de notre système final dépendra de la qualité de notre modèle logiciel.

Real Software
World Model

09/01/2024 ABNANE Ibtissam 40


Object oriented programming
• Pensez à un système informatique qui permettra de réserver des articles dans
une bibliothèque.
• Objets? Caractéristiques?

09/01/2024 ABNANE Ibtissam 41


Object oriented programming

• La modélisation orientée objet est basée sur les idées d'abstraction,


d'encapsulation, d'héritage et de polymorphisme.
• Les partisans généraux de l'approche orientée objet affirment que ce modèle
fournit :- de meilleures abstractions (modéliser l'information et le
comportement ensemble)- une meilleure maintenabilité (plus
compréhensible, moins fragile)- une meilleure réutilisabilité (classes en tant
que composants encapsulés)

09/01/2024 ABNANE Ibtissam 42


Object oriented programming
• La programmation orientée objet implique la création de classes en modélisant le
monde réel.
• Cela permet de créer des classes plus spécialisées qui héritent du comportement
des classes généralisées.
• Le comportement polymorphe signifie que les systèmes peuvent être modifiés,
en fonction de l'évolution des besoins de l'entreprise, en ajoutant de nouvelles
classes spécialisées. Le reste du système peut accéder à ces classes sans tenir
compte de leur comportement spécialisé et sans modifier les autres parties du
système actuel.

09/01/2024 ABNANE Ibtissam 43


Object oriented programming
Considérons une situation réelle.
• Il y a deux personnes, Benjamin et sa femme, Bambie.
• Ils sont clients de HomeCare, une entreprise qui vend des meubles de luxe.
• HomeCare vend une variété de canapés. Chaque ensemble de canapés est étiqueté avec un numéro
d'identification et une étiquette de prix.
• Après avoir regardé les canapés pendant une heure, Benjamin et Bambie décident d'acheter un ensemble 5
places en cuir vert.
• Ils s'adressent à Sean, un vendeur, pour passer leur commande.

09/01/2024 ABNANE Ibtissam 44


Object oriented programming
• Benjamin envoie à Sean le message suivant : "Je voudrais acheter cet ensemble 5 places en cuir vert. Pouvez-vous me
l'envoyer d'ici mercredi prochain ?".

• Le message que Benjamin a envoyé à Sean est un message takeOrder. Il contient des informations telles que le type de
canapé (un ensemble en cuir vert, 5 places) et la date de livraison (mercredi prochain).

• Ces informations sont connues comme les paramètres du message takeOrder.

• En réponse au message de Benjamin, Sean répond à Benjamin en lui retournant le résultat de sa demande.

09/01/2024 ABNANE Ibtissam 45


Object oriented programming
Sean, en tant que vendeur de HomeCare, a une responsabilité envers Benjamin. Il maintient sa
responsabilité en appliquant un ensemble d'opérations :

1. Il détermine si le stock est suffisant pour satisfaire la demande de Benjamin.


2. Il détermine si la date demandée pour la livraison est une date convenable.
3. Il donne l'ordre au personnel de l'entrepôt de livrer les marchandises à l'adresse de Benjamin à
la date demandée, si les conditions ci-dessus sont remplies.
4. Enfin, il informe Benjamin du résultat de sa demande.

09/01/2024 ABNANE Ibtissam 46


Object oriented programming
Les interactions entre Benjamin et Sean dans la situation réelle ci-dessus peuvent être représentées en termes
de programmation orientée objet.
Par exemple, Benjamin et Sean sont des objets qui interagissent en envoyant des messages. Benjamin est
donc un objet émetteur de messages, tandis que Sean est un objet récepteur de messages.
Alternativement, nous pouvons étiqueter Benjamin comme un émetteur et Sean comme un récepteur. La
demande takeOrder de Benjamin à Sean est un exemple de message. Elle peut être accompagnée
d'informations supplémentaires, appelées paramètres (ou arguments) du message.

09/01/2024 ABNANE Ibtissam 47


Object oriented programming
Le fait que Sean ait répondu au message de Benjamin indique que le message est un
message valide. Chaque message valide correspond à une méthode que Sean utilise pour
remplir sa responsabilité envers Benjamin.
Un message non valide, en revanche, est un message auquel le récepteur n'a pas la capacité
de répondre, c'est-à-dire que le récepteur n'a pas de méthode correspondante au message.

09/01/2024 ABNANE Ibtissam 48


Object oriented programming
• Par exemple, si Benjamin avait demandé une remise sur le prix, sa demande
aurait été rejetée car Sean, étant un vendeur, n'aurait pas la capacité (ou une
méthode correspondante) de répondre au message.
• Une méthode contient un certain nombre d'opérations détaillant comment
Sean doit satisfaire la demande que Benjamin lui a adressée par le biais de
sa requête.

09/01/2024 ABNANE Ibtissam 49


Object oriented programming
Même si Benjamin peut savoir ce que Sean peut faire par le biais de ses
méthodes, il ne peut pas savoir comment Sean les fait. Il s'agit d'un principe
important de la programmation orientée objet connu sous le nom de
dissimulation d'informations : l'expéditeur d'un message ne sait pas comment
un récepteur va satisfaire la demande contenue dans le message.

09/01/2024 ABNANE Ibtissam 50


Objets et classes

• Bernie est un autre client de


HomeCare.
• En tant que clients de HomeCare,
Benjamin et Bernie partagent certaines
informations similaires.
• Par exemple, ils ont tous deux un nom,
une adresse et un budget - des
informations pertinentes pour
décrire les clients.

09/01/2024 ABNANE Ibtissam 51


Objets et classes

Ces informations sont connues sous le nom


d'attributs d'objet.
Une définition d'attribut d'objet permet aux
objets d'avoir des valeurs d'attribut
indépendantes.
Par exemple, Benjamin peut avoir un budget
plus important et donc une valeur de budget
plus grande (disons 2000 $) que Bernie dont le
budget peut être de 1000 $.
Collectivement, les valeurs des attributs d'un
objet représentent l'état de l'objet.
09/01/2024 ABNANE Ibtissam 52
Objets et classes

Outre les attributs, Benjamin et Bernie


présentent également certains comportements
typiques d'un client.
Par exemple, Benjamin et Bernie exécutent une
méthode lorsqu'ils effectuent un achat. Appelons
cette méthode purchase().
La méthode purchase() est composée d'un
ensemble d'opérations que Benjamin et Bernie
utiliseraient pour envoyer une demande d'achat à
un vendeur.

09/01/2024 ABNANE Ibtissam 53


Objets et classes
• Nom, adresse et budget sont des
attributs tandis que purchase() et
getBudget() sont des méthodes des
deux objets.
• Notez que les deux objets partagent
une définition commune des attributs
et des méthodes.
• En fait, tous les clients de HomeCare
partagent le même ensemble de
définitions d'attributs et de méthodes.
Ils possèdent tous les attributs nom,
adresse et budget, ainsi que les
méthodes purchase() et getBudget().
09/01/2024 ABNANE Ibtissam 54
Objets et classes
• Pour définir ces objets, on utilise une définition commune appelée classe.
Une classe est un modèle de définition permettant de structurer et de créer
des objets ayant les mêmes attributs et méthodes.
• Benjamin et Bernie, étant des clients de HomeCare, peuvent donc être
définis par une classe appelée Customer comme suit :

09/01/2024 ABNANE Ibtissam 55


Objets et classes

Une différence majeure entre les objets et les classes réside dans la manière
dont les attributs et les méthodes sont traités dans les objets et les classes.
Une classe est une définition des objets ; les attributs et les méthodes d'une
classe sont donc des déclarations qui ne contiennent pas de valeurs.
En revanche, les objets sont des instances créées d'une classe. Chacun d'eux
possède ses propres attributs et méthodes. Les valeurs de l'ensemble des
attributs décrivent l'état des objets.

09/01/2024 ABNANE Ibtissam 56


Objets et classes
Examinons maintenant les vendeurs. Les vendeurs ont également des attributs et des méthodes. Sean et Sara sont deux
vendeurs de HomeCare.
Ils sont donc capables d'un comportement typique d'un vendeur, par exemple, prendre les commandes des clients.
Pour remplir leur rôle de vendeurs dans une transaction d'achat, Sean et Sara exécutent une méthode. Nous appellerons
cette méthode takeOrder(), et nous représenterons Sean et Sara comme suit :

09/01/2024 ABNANE Ibtissam 57


Objets et classes
Étant des vendeurs, Sean et Sara partagent des attributs et des méthodes similaires. Comme les clients, leur
définition peut être décrite par une classe appelée SalesPerson avec la représentation suivante

Notez que la définition de la classe SalesPerson est différente de celle de la classe Customer, car les clients et
les vendeurs se comportent différemment : les clients passent des commandes et les vendeurs en prennent.

09/01/2024 ABNANE Ibtissam 58


Messages et méthodes
• Les objets communiquent entre eux en envoyant des messages.
• Un message est un appel de méthode d'un objet émetteur de message à un
objet récepteur de message.
• Un objet répond à un message en exécutant l'une de ses méthodes.
• Des informations supplémentaires, appelées arguments, peuvent
accompagner un appel de méthode. Une telle paramétrisation permet une
plus grande flexibilité dans le passage des messages.
• L'ensemble des méthodes définit collectivement le comportement
dynamique d'un objet. Un objet peut avoir autant de méthodes que
nécessaire.

09/01/2024 ABNANE Ibtissam 59


Messages et méthodes

Un message est composé de trois éléments :


• un identifiant d'objet qui indique le destinataire du message,
• un nom de méthode (correspondant à la méthode du destinataire), et
• des arguments (informations supplémentaires nécessaires à l'exécution de la
méthode).

09/01/2024 ABNANE Ibtissam 60


Objets et classes
• Dans la programmation orientée objet, les objets sont créés à partir de classes. Les instances des objets
Customer sont créées à partir d'une classe Customer et les objets SalesPerson à partir d'une classe
SalesPerson.
• Les instances d'objets créées sont des individus avec leur propre état.
• Example: compteurs.
• Un compteur est un dispositif qui tient compte du nombre de fois qu'un événement s'est produit. Il possède
deux boutons : un bouton d'initialisation qui remet le compteur à 0, et un bouton d'ajout qui ajoute 1 à son
nombre actuel.

09/01/2024 ABNANE Ibtissam 61


Objets et classes

Les trois compteurs partagent la même définition des attributs et


des méthodes, et comme dans les exemples précédents, ils
peuvent être définis par une classe comme suit :
La classe Counter a :
• un attribut, number ;
• une méthode initialize() qui fait que le compteur remet son
numéro à 0.
• une méthode add() qui fait en sorte qu'un compteur ajoute 1 à
son nombre ;
• une méthode getNumber() qui renvoie la valeur actuelle de
l'attribut number.

09/01/2024 ABNANE Ibtissam 62


Objets et classes

• Supposons qu'un nouvel objet soit créé à partir de la classe Counter.


• Bien que le nouvel objet Counter ait la même définition des attributs et des
méthodes que les trois compteurs précédents, sa valeur d'attribut peut ne pas
être la même que celle des autres compteurs.
• Cela suggère que l'état des compteurs peut être différent les uns des autres.

09/01/2024 ABNANE Ibtissam 63


Objets et classes

09/01/2024 ABNANE Ibtissam 64


A retenir
• Les objets sont définis par des classes.
• Les objets d'une même classe partagent la même définition des attributs et des méthodes.
• Les objets d'une même classe peuvent ne pas avoir les mêmes valeurs d'attributs.
• Les objets de classes différentes ne partagent pas la même définition des attribut ou de méthodes.
• Les objets créés à partir de la même classe partagent la même définition des attributs et des
méthodes, mais leur état peut être différent.
• Une méthode est un ensemble d'opérations exécutées par un objet à la réception d'un message.
• Un message est composé de trois éléments : un identifiant d'objet, un nom de méthode et des des
arguments.

09/01/2024 ABNANE Ibtissam 65

Vous aimerez peut-être aussi