[PDF] La programmation orientée objet - 4e édition : Cours et exercices en





Previous PDF Next PDF



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 2

Cette 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 par

un 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-5

H. 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 objet

Cours et exercices en UML 2,

avec Java 5, C# 2, C++, Python, PHP 5 et LINQ

Hugues Bersini

La programmation

orientée objet

Cours et exercices en UML 2

avec Java 5, C# 2, C++, Python, PHP 5 et LINQ bersini 2008 25/11/08 12:26 Page 1

La programmation

orientÈe objet bersini2008 titre 20/11/08 13:38 Page 1

DA 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,

licence

N°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 P

O 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.0

N°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 Squeak

N°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 objet

N°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.com

Le 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-5

Cet 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 ? . . . . . . . . . . . . . . . . . . 9

Le trio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

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 reu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 07

L'orienté objet

VI Un premier petit programme complet dans les cinq langages . . . . . . . . . . . . . . . . 39

La classe et la logistique de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

CHAPITRE 3

Du faire savoir au savoir-faire... du procédural à l'OO . . . . . . . . . . . . . . . . 57

Objectif 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 . . . . . . . . . . . . . 79

Auto-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 07

Table des matières

VII

CHAPITRE 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 . . . . . . . . . . . . . . . . . . . . . . 212

Héritage des attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

Bersini 4e.book Page VII Mardi, 2. décembre 2008 7:58 07

L'orienté objet

VIII

Hé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 . . . . . . . . . . . . . . . . . . . . . . . . 325

Introduction à 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 07

Table des matières

IX

CHAPITRE 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 . . . . . 387

Objets distribués sur le réseau : pourquoi ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388

RMI (Remote Method Invocation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391

Corba (Common Object Request Broker Architecture) . . . . . . . . . . . . . . . . . . . . . 397

Rajoutons 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 . . . . . . . . . . . 434

Du 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 07

L'orienté objet

X

En 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 javascript pdf

[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