8. Habituellement, un programme c'est une suite d'instructions. L'ordinateur est très bête et il faut tout lui détailler. Exemple programme d’ouverture de porte Tout se passe très bien. Mais qu'est-ce qui se passe par exemple si on met une porte automatique ? Le programme sera incapable de trouver la poignée et d'ouvrir la porte ! Avantages de la programmation objet Mettre la main sur la poignée de la porte Tourner la poignée Pousser la porte Mettre le doigt sur l'interrupteur Appuyer sur l'interrupteur pour allumer l'ampoule
9. En programmation objet, on associe aux objets des actions (aussi appellées méthodes ). Par exemple, à l'objet porte on peut associer la méthode ouvrir . De même pour l'ampoule on pourrait associer une méthode allumer , éteindre , etc. Le programme devient plus simple: On a plus besoin de savoir comment la portes'ouvre. On se contente de l'ouvrir. Pour indiquer qu'on applique la méthode (ouvrir) sur l'objet (porte), on note souvent objet . méthode (ici : porte.ouvrir). porte.ouvrir ampoule.allumer
10. Bien sûr il faut détailler ce que fait la méthode ouvrir de porte et la méthode allumer de lumière . On ne va pas détailler dans le programme ce que fait la méthode ouvrir, mais on va le détailler dans l'objet lui-même . C'est normal, puisque la méthode ouvrir ne s'applique qu'à la porte, pas à la lumière: porte.ouvrir : Mettre la main sur la poignée Tourner la poignée Pousser la porte
11. On peut changer la porte en mettant une porte automatique. On peut aussi l'ouvrir (même si la porte elle-même ne s'ouvre pas de la même façon): Mais votre programme pourra l'ouvrir sans rien changer: Le programme principal : il est inchangé malgré le changement de porte porte.ouvrir : Se placer devant la porte Attendre que la porte soit complètement ouverte porte.ouvrir ampoule.allumer
12. La programmation objet a plusieurs intérêts, entre autres: Vous pouvez utiliser des objets sans savoir comment ils sont programmés derrière (c'est le cas notre ouverture de porte). Les objets peuvent être modifiés sans avoir à modifier votre programme (c'est aussi le cas ici). Les objets sont facilement réutilisables dans de nouveaux programmes. Les langages objets offrent des mécanismes pour permettre ce genre de programmation.
14. Objets de la vie courante grosminet titi felix garfield Rêve poursuit poursuit mange parle odie 0605040302 0102030405 0203040506 007BEJ06 45BEJ91 123CDE91 001-DF-YTR java 2 Dupond Dupont
33. Redéfinition d’une méthode Sémantique de la méthode retirer : CompteChèque : retrait autorisé suivant découvert CompteEpargne : pas de découvert autorisé PlanEpargneLogement : pas de retrait calculerIntérêts () créditerIntérêts () changerTaux () taux intérêts CompteEpargne calculerMontantPrêt() retirer () durée dateDebut périodiciteVersement montantVersement PlanEpargneLogement déposer () retirer () solde CompteBancaire ChangDecouvert () retirer () montantDécouvertAutorisé CompteChèque
34.
35.
36. Associer les classes : Les concepts + de cours sur http:// coursuniversite.com /
37. Association Une agence gère plusieurs clients. Un client possède un et un seul compte courant. gérer Compte Client Agence posséder
38. Multiplicités les plus courantes 1 Un et un seul 0..1 Zéro ou un M..N De M à N (entiers naturels) * De zéro à plusieurs 0..* De zéro à plusieurs 1..* D'un à plusieurs gérer * 1 Compte Client Agence posséder 1 1
39.
40. Association multiple : Tableau de références sur des objets unClient:Client uneAgence:Agence nom adresse lesClients * 500 BNP EVRY … 0 500 indice
41.
42.
43. Le langage C++ se veut un langage C amélioré. Il possède des fonctionnalités supplémentaires, et notamment * la surcharge de fonctions * le passage par référence * l'emplacement des déclarations * l'allocation dynamique Les apports spécifiques de C++ sont * l'aide à l'abstraction de données: définition de types de données, et de leur implémentation concrète. * l'aide à la programmation objet: hiérarchie de classes et héritage. Meilleur C
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67. // Fichier main.c #include "point.h" void main() { Point a(1,2), b(3,-5); a.affiche(); b.affiche(); a.deplace(1,1); a.affiche(); } // Fichier point.h class Point { int x, y; public: Point (int, int); void deplace (int, int); void affiche (); }; // Fichier point.c #include <iostream.h> #include "point.h" Point::Point(int a, int b) { x = a; y = b ; } void Point::deplace (int dx , int dy) { x += dx; y += dy; } void Point::affiche() { cout << "x = " << x <<" , y = "<< y << endl; }
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
Hinweis der Redaktion
On perçoit le monde comme un ensemble d ’objets Un objet possède un nom, unique : identité. Deux jumeaux (Dupont et Dupond) sont 2 personnes distinctes. Identité = les objets peuvent être distingués grâce à leur existence inhérente et non grâce à la description des propriétés qu'ils peuvent avoir. => Faire pressentir que l ’on abstrait la réalité: On classe les objets par famille en faisant abstraction de quelques différences, de détails non pertinents. On élabore une définition théorique de ce que doit être un objet de cette classe Quand on voit un téléphone, quelle que soit la marque ou le type, on sait qu’on va pouvoir composer un numéro. Faire pressentir la différence entre objet de la vie courante et objet logiciel (on en parle vraiment slide 5) - les objets peuvent interagir entre eux, cf. slide suivant
Objet coopératif Un objet agit sur son environnement On peut interagir avec la plupart des objets télé, téléphone, voiture Contre exemple : livre Chaque objet est capable de rendre un ensemble de services bien définis. On peut faire interagir les objets pour accomplir une tache complexe.
On n’a pas à savoir qu’il y a des bougies de préchauffage ou non (diesel ou non), un carburateur et encore moins la coopération (interne) des ces objets … pour démarrer sa voiture. Idem pour un téléviseur. La télécommande sert à adresser des signaux de changements d’états mais à aucun moment le téléspectateur n’a à ouvrir sa télé pour changer de chaîne.
Exercice conception Unité 1 sur le site web (&quot;Définir les objets d'un système&quot;) Pour une voiture: services : démarrer État : niveaux (batterie, réservoirs) Identité : plaque d'immatriculation La réalisation du service dépend de l'état de l'objet. La voiture démarre si niveau batterie OK
Illustre le transparent précédent. + Les services sont définis précisément. Si on demande un service non défini,il ne peut être réalisé.
Représentation graphique : rectangle avec une première partie pour l’identité d’objet, une deuxième pour attributs (constant ou variable) Conventions d’écritures - l’identité d’un attribut commence par une minuscule - quand on change de mot, majuscule - idem pour attribut variable - constante = tout en majuscule
Pour réaliser un service demandé,un objet peut demander la coopération d'un autre objet en lui envoyant à son tour un message. et ainsi de suite.
Vous pouvez reprendre l'exemple des Dupond et Dupont Exercice Conception sur le web : &quot;Identité d'objet&quot;