Apprenez à programmer en Java - 3e édition
– Programmez en orienté objet en PHP. N° 14472 2e édition
Apprendre à programmer avec Python 3 - INFOREF
à l'interpréteur principal écrit en C et maintenu par le créateur du langage
Apprendre a Programmer - Christophe Dabancourt - Eyrolles (2ème
Apprendre à programmer. 2e édition Apprendre à programmer. CHAPITRE 2 ... Du langage algorithmique vers les langages Java. C++ et Visual Basic.
Apprendre le C++ Claude Delannoy
%20Claude%20Delannoy.pdf
Initiation à la programmation orientée-objet avec le langage Java
Au moment où est écrit ce livret la dernière version stable est le JDK . . 1.1.1 Compilation. La compilation s'effectue par la commande javac suivie d'un ou
La programmation orientée objet - 4e édition : Cours et exercices en
Apprendre Java et C++ en parallèle. N° 12403 4e édition
Cours PHP Accéléré
12 juil. 2022 0 et s'inspire désormais largement du modèle de Java. 4.3. Historique. 9. Page 14. Cours PHP Accéléré Version 1.0.8.
Apprenez à programmer en Python - 3e
13 mai 2019 O'Hanlon D. Whale. — Apprendre à coder en Python avec Minecraft. No 67721
cours-python.pdf
22 mars 2018 Le cours est disponible en version HTML 2 et PDF 3. ... Le livre Apprenez à programmer en Python de Vincent Legoff 14 que vous trouverez sur ...
Programmer en Java
Exercices en Java. N°11989 2e édition
L'approche objet est enseignée dans les universités dès les premiers niveaux des cursus informatiques, car sacompréhension est le prérequis indispensable à toute pratique économe, fiable et élégante de la plupart destechniques informatiques qui en sont dérivées, depuis Java et Python, jusqu'à UML 2, en passant par C# et C++.
L'objet par la pratique avec Python, Java, C# et C++ et PHP 5... en UML 2Cette quatrième édition de l'ouvrage L'orienté objetdécortique l'ensemble des mécanismes de la programmation objet
(classes et objets, interactions entre classes, envois de messages, encapsulation, héritage, polymorphisme, modélisation...
en les illustrant d'exemples empruntant aux technologies les plus populaires : Java et C#, C++, Python, PHP 5, UML 2, mais
aussi les services web, RMI, les bases de données objet, différentes manières de résoudre
la mise en correspondance relationnel/objet par le langage innovant de requête objet LINQ et enfin les design patterns. Chaque chapitre est introduit parun dialogue vivant, à la manière du maître et de l'élève, et se complète de nombreux exercices en UML 2, Java, Python,
PHP 5, C# et C++.
À qui s'adresse ce livre ?
• Ce livre sera lu avec profit par tous les étudiants de disciplines informatiques liées à l'approche objet (programmation orientée
objet, modélisation UML, Java, Python, PHP 5, C#/C++...) et pourra être utilisé par leurs enseignants comme matériel de cours.
• Il est également destiné à tous les développeurs qui souhaitent approfondir leur compréhension des concepts objet sous-
jacents au langage qu'ils utilisent.Au sommaire
Principes de base :L'objet, version passive, version active - Notion de classe - Interaction et hiérarchie des objets -
Polymorphisme - Héritage.
La classe, module fonctionnel et opérationnel- La classe garante de son bon usage - Premier programme complet en Java, PHP 5 et Python, C# et C++. Du procédural à l'orienté objet : Mise en pra- tique - Analyse - Conception. Les objets parlent aux objets :Envois de messages - Association de classes -Dépendance de classes.
Collaboration entre classes :Compilation Java et effet domino - En PHP 5, Python, C# et en C++ - Association unidirectionnelle/bidirectionnelle - Auto-association - Assemblage.Méthodes ou messages :
Passage d'arguments prédéfinis dans les messages - Arguments objets. L'encapsulation des attributs :Accès aux attri-
buts d'un objet.Les classes et leur jardin secret :Encapsulation des méthodes - Niveaux intermédiaires d'encapsu-
lation - Éviter l'effet papillon. Vie et mort des objets :C++, ou le programmeur seul maître à bord - Java, PHP 5,Python et C#, ou la chasse au gaspi.
UML :Représentation graphique standardisée - Diagrammes de classe et de séquen-ce. Héritage - Regroupement en superclasses - Héritage des attributs - Composition : Héritage des méthodes -
Encapsulation protected - Héritage public en C++ - Multihéritage. Redéfinition des méthodes :Un match de football polymorphique. Abstraite, cette classe est sans objet : De Canaletto à Turner - Abstraction syntaxique -Supplément de polymorphisme.
Clonage, comparaison et assignation d'objets :La classe Object - Égalité, clonage et affectation d'objets en C++ et C#. Interfaces :Favoriser la décomposition et la stabilité - Java, PHP 5 et C# : inter- face via l'héritage - C++ : fichiers .h et .cpp. Distribution d'objets sur le réseau :RMI - Corba - Services web.Multithreading :Implémentation en Java, PHP 5, Python et C# - Multithreading et diagrammes de séquence UML -
Vers les applications distribuées - Des threads équirépartis et synchronisés.Programmation événementielle :Des
objets qui s'observent - En Java, PHP 5, Python et C#. Persistance d'objets :Sauvegarde sur fichier - La sérialisation - Bases de données relationnelles et objet - La bibliothèque LINQ. Simulation d'un flipper.Les graphes :Liste liée -
Généricité en C++ et en Java, PHP 5 et Python- Les design patterns.Le code source des exercices et leurs corrections sont fournis sur le site d'accompagnement www.editions-eyrolles.com.
Code éditeur : G12441 • ISBN : 978-2-212-12441-5H. Bersini
Hugues Bersini
Ingénieur physicien, directeur du Laboratoire d'intelligence artificielle de l'Université libre de
Bruxelles, Hugues Bersini enseigne l'informatique et la programmation aux facultés polytechnique et Solvay de cette même université.Ivan Wellesz
est développeur Java indépendant et formateur Unix, C et Java chez Orsys. Il a travaillé treize ans
chez Tektronix où il a participé à la conception d'interfaces homme-machine et de systèmes d'armes à DCN-BREST.
Programmation objet
35 ?9 7 8 2 2 1 2 1 2 4 4 1 5
La programmation
orientée objetCours et exercices en UML 2,
avec Java 5, C# 2, C++, Python, PHP 5 et LINQHugues Bersini
La programmation
orientée objetCours et exercices en UML 2
avec Java 5, C# 2, C++, Python, PHP 5 et LINQ bersini 2008 25/11/08 12:26 Page 1La programmation
orientÈe objet bersini2008 titre 20/11/08 13:38 Page 1DA N S L A M Ê M E C O L L E C T I O N
C . DE L A N N O Y. - Programmer en Java. Java 5 et 6. N°12232, 5e édition, 2007, 800 pages avec CD-Rom.J.-B. B
O I C H AT. - Apprendre Java et C++ en parallèle. N° 12403, 4e édition, 2008, 600 pages avec CD-Rom. A . TASSO. - Le livre de Java premier langage.Avec 80 exercices corrigés.
N°12376, 5e édition, 2008, 520 pages avec CD-Rom. C . DABA N C O U RT. - Apprendre à programmer.Algorithmes et conception objet - BTS, Deug, IUT,
licenceN°12350, 2e édition, 2008, 296.
P. RO Q U E S. - UML 2 par la pratique. Étude de cas et exercices corrigés.N°12322, 6e édition, 2008, 368.
A . TASSO. - Apprendre à programmer en ActionScript 3.N°12199, 2008, 438 pages.
A . BR I L L A N T. - XML. Cours et exercices.N°12151, 2007, 282 pages.
C . DE L A N N O Y. - C++ pour les programmeurs C.N°12231, 6e édition, 2007, 602 pages.
C . SO U T O U. - UML 2 pour les bases de données.Avec 20 exercices corrigés.
N°12091, 2007, 314 pages.
X BL A N C, I. MO U N I E R. - UML 2 pour
les développeurs.N°12029, 2006, 202 pages
H . SU T T E R (trad. T. PE T I L L O N). - Mieux programmer en C++N°09224, 2001, 215 pages.
P. HA G G A R (trad. T. TH A U R E A UX). -
Mieux programmer en Java
N°09171, 2000, 225 pages.
CH E Z L E M Ê M E ÉDI T E U R
B. ME Y E R. - Conception et programmation
orientées objet. N°12270, 2008, 1222 pages (Collection Blanche).T. ZI ADÉ. - Programmation Python.
N°11677, 2006, 530 pages (Collection Blanche).
P. RO Q U E S. - UML 2. Modéliser une application web.N°11770, 2006, 236 pages (coll. Cahiers du
programmeur). P. RO Q U E S, F. VA L L É E. - UML 2 en action.De l'analyse des besoins à la conception.
N°12104, 4e édition 2007, 382 pages.
E . PU YBA R E T. - Swing.N°12019, 2007, 500 pages (coll. Cahiers du
programmeur) E . PU YBA R E T. - Java 1.4 et 5.0.N°11916, 3e édition 2006, 400 pages
(coll. Cahiers du programmeur) S PO W E R S. - Débuter en JavaScript
N°12093, 2007, 386 pages
T.TE MPL I E R, A. GO U G E O N. - JavaScript pour
le Web 2.0N°12009, 2007, 492 pages
J. ZE LDM A N. - Design web : utiliser les standards,CSS et XHTML.
N°12026, 2e édition 2006, 444 pages.
X. BR IF FA U LT, S. DU C A S S E. - Programmation SqueakN°11023, 2001, 328 pages.
J.-L. BÉ N A RD, L. BO S S AVI T , R.MÉDI N A , D. WI L L I A M S. - L'Extreme Programming, avec deux études de cas.N°11051, 2002, 300 pages.
P. RI G A UX, A. RO C HFE LD. - Traité de modélisation objetN°11035, 2002, 308 pages.
Hugues Bersini
La programmation
orientÈe objet bersini2008 titre 20/11/08 13:38 Page 2ÉDITIONS EYROLLES
61, bd Saint-Germain
75240 Paris Cedex 05
www.editions-eyrolles.comLe code de la propriété intellectuelle du 1
er juillet 1992 interdit en effet expressément la photocopie àusage collectif sans autorisation des ayants droit. Or, cette pratique s'est généralisée notamment dans les
établissements d'enseignement, provoquant une baisse brutale des achats de livres, au point que la possibilité
même pour les auteurs de créer des oeuvres nouvelles et de les faire éditer correctement est aujourd'hui
menacée.En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le
présent ouvrage, sur quelque support que ce soit, sans autorisation de l'éditeur ou du Centre Français d'Exploitation du
Droit de Copie, 20, rue des Grands-Augustins, 75006 Paris. © Groupe Eyrolles, 2009, ISBN : 978-2-212-12441-5Cet ouvrage est la quatrième édition avec mise à jour et changement de titre de l'ouvrage de Hugues Bersini
et Ivan Wellesz paru à l'origine sous le titre " L'Orienté objet » (ISBN 978-2-212-12084-8)Table des matières
Avant-propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
LÕorientation objet en deux mots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Objectifs de lÕouvrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Plan de lÕouvrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Ë qui sÕadresse ce livre ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
CHAPITRE 1
Principes de base : quel objet pour l'informatique ? . . . . . . . . . . . . . . . . . . 9Le trio
Stockage des objets en mŽmoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
LÕobjet dans sa version passive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
LÕobjet dans sa version active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Introduction ˆ la notion de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Des objets en interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Des objets soumis ˆ une hiŽrarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Polymorphisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
HŽritage bien reu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
CHAPITRE 2
Un objet sans classe... n'a pas de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Constitution dÕune classe dÕobjets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
La classe comme module fonctionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
La classe comme garante de son bon usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
La classe comme module opŽrationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Bersini 4e.book Page V Mardi, 2. décembre 2008 7:58 07L'orienté objet
VI Un premier petit programme complet dans les cinq langages . . . . . . . . . . . . . . . . 39La classe et la logistique de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
CHAPITRE 3
Du faire savoir au savoir-faire... du procédural à l'OO . . . . . . . . . . . . . . . . 57Objectif objet : les aventures de l'OO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Mise en pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Impacts de l'orientation objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
CHAPITRE 4
Ici Londres : les objets parlent aux objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Envois de messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Association de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Dépendance de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Réaction en chaîne de messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
CHAPITRE 5
Collaboration entre classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Pour en finir avec la lutte des classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
La compilation Java : effet domino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
En C#, en Python, PHP 5 et en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
De l'association unidirectionnelle à l'association bidirectionnelle . . . . . . . . . . . . . 79Auto-association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Package et namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
CHAPITRE 6
Méthodes ou messages ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Passage d'arguments prédéfinis dans les messages . . . . . . . . . . . . . . . . . . . . . . . . . 88
Passage d'argument objet dans les messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Une méthode est-elle d'office un message ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
La mondialisation des messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Bersini 4e.book Page VI Mardi, 2. décembre 2008 7:58 07Table des matières
VIICHAPITRE 7
LÕencapsulation des attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Accès aux attributs d'un objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Encapsulation : pourquoi faire ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
CHAPITRE 8
Les classes et leur jardin secret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Encapsulation des méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Les niveaux intermédiaires d'encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Afin d'éviter l'effet papillon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
CHAPITRE 9
Vie et mort des objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Question de mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
C++ : le programmeur est le seul maître à bord . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
En Java, C#, Python et PHP 5 : la chasse au gaspi . . . . . . . . . . . . . . . . . . . . . . . . . 148
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
CHAPITRE 10
UML 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Diagrammes UML 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Représentation graphique standardisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Du tableau noir à l'ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Programmer par cycles courts en superposant
les diagrammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Diagrammes de classe et diagrammes de séquence . . . . . . . . . . . . . . . . . . . . . . . . 165
Diagramme de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Les bienfaits d'UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Diagramme de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
CHAPITRE 11
HŽritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Comment regrouper les classes dans des superclasses . . . . . . . . . . . . . . . . . . . . . . 212Héritage des attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Bersini 4e.book Page VII Mardi, 2. décembre 2008 7:58 07L'orienté objet
VIIIHéritage ou composition ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Économiser en rajoutant des classes ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Héritage des méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
La recherche des méthodes dans la hiérarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Encapsulation protected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Héritage et constructeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Héritage public en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Le multihéritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
CHAPITRE 12
Redéfinition des méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
La redéfinition des méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Beaucoup de verbiage mais peu d'actes véritables . . . . . . . . . . . . . . . . . . . . . . . . . 255
Un match de football polymorphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
CHAPITRE 13
Abstraite, cette classe est sans objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
De Canaletto à Turner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Des classes sans objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Du principe de l'abstraction à l'abstraction syntaxique . . . . . . . . . . . . . . . . . . . . . 301
Un petit supplément de polymorphisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
CHAPITRE 14
Clonage, comparaison et assignation d'objets . . . . . . . . . . . . . . . . . . . . . . . . 325Introduction à la classe Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Décortiquons la classe Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Test d'égalité de deux objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Le clonage d'objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Égalité et clonage d'objets en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Égalité et clonage d'objets en PHP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Égalité, clonage et affectation d'objets en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
En C#, un cocktail de Java et de C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Bersini 4e.book Page VIII Mardi, 2. décembre 2008 7:58 07Table des matières
IXCHAPITRE 15
Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Interfaces : favoriser la décomposition et la stabilité . . . . . . . . . . . . . . . . . . . . . . . 363
Java, C# et PHP 5 : interface via l'héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Les trois raisons d'être des interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Les Interfaces dans UML 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
En C++ : fichiers .h et fichiers .cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Interfaces : du local à Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
CHAPITRE 16
Distribution gratuite dÕobjets : pour services rendus sur le rŽseau . . . . . 387Objets distribués sur le réseau : pourquoi ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
RMI (Remote Method Invocation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Corba (Common Object Request Broker Architecture) . . . . . . . . . . . . . . . . . . . . . 397Rajoutons un peu de flexibilité à tout cela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Les services Web sur .Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
CHAPITRE 17
Multithreading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Informatique séquentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Multithreading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Implémentation en Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Implémentation en C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
Implémentation en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
L'impact du multithreading sur les diagrammes de séquence UML . . . . . . . . . . . 434Du multithreading aux applications distribuées . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Des threads équirépartis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Synchroniser les threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
CHAPITRE 18
Programmation ŽvŽnementielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Des objets qui s'observent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
En Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
En C# : les délégués . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Bersini 4e.book Page IX Mardi, 2. décembre 2008 7:58 07L'orienté objet
XEn Python : tout reste à faire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Un feu de signalisation plus réaliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
CHAPITRE 19
Persistance d'objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Sauvegarder l'état entre deux exécutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Simple sauvegarde sur fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Sauvegarder les objets sans les dénaturer : la sérialisation . . . . . . . . . . . . . . . . . . . 478
Les bases de données relationnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Réservation de places de spectacles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
Les bases de données relationnelles-objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Les bases de données orientées objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
Linq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
CHAPITRE 20
Et si on faisait un petit flipper ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
Généralités sur le flipper et les GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Retour au Flipper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
CHAPITRE 21
Les graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
Le monde regorge de réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
Tout d'abord : juste un ensemble d'objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
Liste liée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
La généricité en C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
La généricité en Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
quotesdbs_dbs49.pdfusesText_49[PDF] apprenez ? programmer en php pdf
[PDF] apprentissage 2017 salaire
[PDF] apprentissage dans la fonction publique territoriale
[PDF] apprentissage de l'écriture en maternelle
[PDF] apprentissage essec
[PDF] apprentissage fonction publique hospitalière
[PDF] apprentissage martinique
[PDF] apprentissage par le jeu piaget
[PDF] apprentissage par simulation
[PDF] apprentissages essentiels en lien avec le programme cadre de mathématiques
[PDF] approche actionnelle définition
[PDF] approche actionnelle exemples de taches
[PDF] approche communicative et actionnelle
[PDF] approche communicative pdf