13
Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

Embed Size (px)

Citation preview

Page 1: Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

Classes et objets

Types de données abstraits, programmation orientée objet, classes, objets,

Page 2: Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

2

Évolution de la programmationProgrammation séquentielle :

Les instructions sont exécutéesde façon linéaire.

Les données sont globaleset aucune réutilisation ducode n’est réalisée.

DONNÉES

Programme Programme Programme

Programmation procédurale :

Il s’agit de découper un programmeen une série de fonctions lesquellesont pour but de réaliser un traitementparticulier.On procède à un découpage dutraitement mais les données restentglobales.

DONNÉES

Page 3: Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

3

Programmation orientée objet :

Il s’agit de regrouper l’ensembledes données et les traitementsqui s’appliquent à ces données.

On procède à un découpagenaturel des données et du traitement des données.

DONNÉES

. . .

DONNÉES

. . .

. . .

Exemple : Application chargée de la paye des employés d’une entreprise.

La programmation orientée objet permet une modélisation en lien direct avec lemonde réel.

Cela nous amène à créer minimalement les 3 classes suivantes :

Employe : toutes les données qui caractérisent un employé et les méthodes qui manipulent ces données,

Corps_de_metier : l’ensemble des « employés » de l’entreprise et des méthodes qui se rattachent au corps de métier.

Entreprise : les caractéristiques de l’entreprise, un lien vers le corps de métier et les méthodes qui se rattachent à l’entreprise.

Le concept de classe permet d’établir cette relation données – traitement. Il n’estpas essentiel pour appliquer les principes de la programmation orientée objet maisfacilite grandement la tâche du programmeur.

Page 4: Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

4

Programmation orientée objetsProgrammation orientée objets

Programmation orientée objets

Buts: - améliorer la réutilisation des outils existants- favoriser la spécialisation de ces mêmes outils.- s’éloigner de la machine et se rapprocher du problème à résoudre.- développer une approche mieux adaptée à la résolution de problèmes.- Nouvelle façon de penser la décomposition de problèmes et l’élaboration de solutions.

Le concept de classe permet ypes de données abstraits

Défn.: Type de donnée défini par un programmeur et manipulé comme un typede donnée de base du langage (int, long, float, …).

Un type de donnée abstrait peut être implanté à l’aide de la notion de classe.Chaque instance d’une classe est un objet de la classe ou une variable de ce typede donnée.

Peu ou pas de variables globales : permet une meilleure protection desdonnées.

Page 5: Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

5

Concepts de la programmation orientée objetsConcepts de la programmation orientée objets

L’approche objet s’appuie sur 3 techniques fondamentales:

l’encapsulation l’héritage le polymorphisme

Page 6: Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

6

L’ENCAPSULATIONL’ENCAPSULATION

EXEMPLE :

Mon chat miaule, marche et mange :Nous connaissons les manifestations extérieures du miaulement, mais lafaçon dont le son est produit nous est masqué.

Le chat devient alors une abstraction dont on ne montre seulement que quelquescomportements.

Une interface représente cette abstraction.

L’interface énonce les services offerts et les détails de fonctionnement sont cachés.

L’emphase est mise sur la compréhension des éléments importants, sans se soucierde l’implantation.

Page 7: Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

7

L ’ENCAPSULATIONL ’ENCAPSULATION

Permet de réunir au sein d’une même entité appelée classe, des données membres(variables ou attributs) et des traitements (fonctions membres ou comportements).

Un système de protection permet de contrôler l’accès aux données et traitements dela classe.

On peut cacher le fonctionnement interne d’une classe et éviter que les objetsde cette classe soient utilisés de façon non conforme.

Vu de l’extérieur, l’interface d’un objet (aussi appelé protocole) constitue la listede tous les services (i.e. les méthodes) auxquels les autres objets ont accès.

On ne peut modifier l’état d’un objet directement, on doit passer par l’interface.

Les objets de ces classes ont la propriété de masquer l’information.

Page 8: Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

8

L ’ENCAPSULATIONL ’ENCAPSULATION

Constructeurs : créer et initialiser un nouvel objet.

Destructeurs : libérer les ressources et détruire l’objet.

Accès : accède à de l’information mais n’altère pas l’état de l’objet.

Catégories d’opérations dans l’interface d’un objet

Assignation : altère l’état d’un objet.

Opérateur de comparaison : comparer des objets entre eux.

Itérateur : permet de parcourir une collection d’objets dans un ordre donné.

Copie et clonage : copie à partir d’un autre objet ou clonage de l’objet lui-même.

Entrée / sortie.

Page 9: Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

9

L’HÉRITAGEL’HÉRITAGE

EXEMPLE :

Plusieurs comportements d’un fournisseur de bois de chauffage sont connus, nonpas parce que je sais qu’il est fournisseur de bois de chauffage, mais aussi parcequ’il est un commerçant.

Je m’attend à ce qu’il me demande de l’argent pour ses services et qu’il me donneun reçu en échange.

Ces comportements sont aussi vrais pour l’épicier, le coiffeur ou le préposé au clubvidéo.

Les comportements d’un commerçant sont aussi ceux de l’épicier, du coiffeur, …

En organisant nos connaissances ainsi, cela permet une compréhension rapide duproblème.

Page 10: Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

10

L’HÉRITAGEL’HÉRITAGE

Objets physiques

AnimalPlante

Chien Humain

Fleurs

Hubert

Commerçant Artiste Dentiste

Fleuriste

Fleurs pour BéatriceGaston Picasso Jean

Peintre

Mammifère Reptile Poisson

Philo(Un poisson rouge)

Rex(Un boa)

Garagiste

Jean-Guy

Page 11: Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

11

L’HÉRITAGEL’HÉRITAGE

Permet de réutiliser les classes existantes

On peut définir une nouvelle classe à partir d’une autre.

La classe dérivée pourra bénéficier- des attributs (variables)- des comportements (fonctions)

de la classe de base dont elle hérite.

Permet de spécialiser une classe de base en renfermant d’autres éléments dans lesclasses dérivées. imprimante

Imprimante à matrice de points Imprimante au laser

Héritage des propriétés

Page 12: Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

12

Hiérarchie de classesHiérarchie de classes

Une classe peut hériter d’une classe qui est elle-même une sous-classe et ainsi desuite.

La structure arborescente qui en résulte est appelée hiérarchie de classes.

FIGURE

POLYGONE

TRIANGLE

ELLIPSE

CERCLERECTANGLE

CARRÉ

Page 13: Classes et objets Types de données abstraits, programmation orientée objet, classes, objets,

13

LE POLYMORPHISMELE POLYMORPHISME

S’applique aux fonctions membres des classes.

Permet à 2 objets de classes différentes de réagir différemment au même appel deméthode.

EXEMPLE :

Les chiens, les serpents et les poissons partagent tous un comportement communhérité de la classe des animaux : ils ont la capacité de se mouvoir.

Tous le font, mais chacun à sa manière : - le chien marche- le serpent rampe- le poisson nage.

Si on donne l’ordre de se mouvoir, chaque animal va pouvoir répondre à cet ordre,à sa manière propre.