You are on page 1of 8

Apprendre la Programmation Oriente Objet avec le

langage C#

Introduction la POO
1. Histoire de la POO

2. Historique du C#

12

La conception oriente objet


1. Approche procdurale et dcomposition fonctionnelle

13

2. La transition vers l'approche objet

14

3. Les caractristiques de la POO

15

3.1 L'objet, la classe et la rfrence


3.1.1 L'objet
3.1.2 La classe
3.1.3 La rfrence
3.2 L'encapsulation
3.3 L'hritage
3.4 Le polymorphisme
3.5 L'abstraction

15
15
16
17
18
18
20
21

4. Le dveloppement objet

22

4.1 Cahier des charges du logiciel


4.2 Modlisation et reprsentation UML
4.2.1 Diagrammes de cas d'utilisation
4.2.2 Diagrammes de classes
4.2.3 Les numrations
4.2.4 Diagrammes de squences
4.3 Rdaction du code et tests unitaires

www.editions-eni.fr

Editions ENI

22
22
25
26
32
33
35

1/8

Apprendre la Programmation Oriente Objet avec le


langage C#

Introduction au .NET Framework et VS


1. Prsentation du framework .NET

37

1.1 Environnement d'excution


1.2 Le choix des langages
1.3 Utiliser plusieurs langages
1.4 Une librairie trs complte
1.5 Des installations simplifies
1.6 Un outil de dveloppement complet

37
38
38
39
40
42

Les types du C#
1. "En C#, tout est typ !"

49

2. "Tout le monde hrite de System.Object"

54

2.1 Les types Valeurs


2.2 Les types Rfrence
2.3 Boxing - Unboxing
2.4 Utilisation des mthodes de System.Object
2.4.1 Equals
2.4.2 GetHashCode
2.4.3 ToString
2.4.4 Finalize
2.4.5 Object.GetType et les oprateurs typeof et is
2.4.6 Object.ReferenceEquals
2.4.7 Object.MemberwiseClone
2.5 Le type System.String et son alias String

54
58
59
60
61
64
66
67
68
69
70
73

3. Exercice corrig

77

3.1 nonc
3.2 Correction

77
77

www.editions-eni.fr

Editions ENI

2/8

Apprendre la Programmation Oriente Objet avec le


langage C#

Cration de classes
1. Introduction

81

2. Espace de noms

81

3. Dclaration d'une classe

88

3.1 Accessibilit des membres


3.2 Attributs
3.2.1 Attributs constants
3.2.2 Attributs en lecture seule
3.3 Proprits
3.4 Constructeur
3.4.1 tapes de la construction d'un objet
3.4.2 Surcharge de constructeurs
3.4.3 Constructeurs avec valeurs de paramtres par dfaut
3.4.4 Chanage de constructeurs
3.4.5 Les constructeurs de type static
3.4.6 Les constructeurs de type private
3.4.7 Les initialiseurs d'objets
3.5 Destructeur
3.6 Autre utilisation de using
3.7 Le mot-cl this
3.8 Mthodes
3.8.1 Dclaration
3.8.2 Passage par valeur et passage par rfrence
3.9 Mcanisme des exceptions
3.9.1 Prsentation
3.9.2 Principe de fonctionnement des exceptions
3.9.3 Prise en charge de plusieurs exceptions
3.10 Surcharge des mthodes
3.11 Exercice
3.11.1 nonc
3.11.2 Conseils
3.11.3 Correction

www.editions-eni.fr

Editions ENI

89
90
91
92
93
101
101
103
103
104
105
106
108
109
111
112
116
116
119
132
132
134
144
145
147
147
148
148

3/8

Apprendre la Programmation Oriente Objet avec le


langage C#

4. Les interfaces

151

4.1 Introduction
4.2 Le contrat
4.3 Dclaration d'une interface
4.4 Implmentation
4.5 Visual Studio et les interfaces
4.6 Reprsentation UML d'une interface
4.7 Interfaces et polymorphisme
4.8 Exercice
4.8.1 nonc
4.8.2 Conseils
4.8.3 Correction
4.9 Les interfaces du .NET
5. Association, composition et agrgation
5.1 Les tableaux
5.2 Les collections
5.2.1 List<> et LinkedList<>
5.2.2 Queue<T> et Stack<T>
5.2.3 Dictionary<TKey, TValue>
5.2.4 Les numrateurs
5.3 Exercice
5.3.1 nonc
5.3.2 Correction

151
152
153
154
156
158
158
159
159
160
162
166
168
175
182
183
186
186
187
188
188
189

6. Les classes imbriques

191

7. Les structures

194

7.1 Dclaration d'une structure


7.2 Instanciation d'une structure

195
197

8. Les classes partielles

www.editions-eni.fr

200

Editions ENI

4/8

Apprendre la Programmation Oriente Objet avec le


langage C#

9. Les mthodes partielles

201

10. Les indexeurs

202

11. Surcharges d'oprateurs

206

Hritage et polymorphisme
1. Comprendre l'hritage

211

2. Codage de la classe de base et de son hritire

212

2.1 Interdire l'hritage


2.2 Dfinir les membres hritables
2.3 Codage de l'hritage
2.4 Exploitation d'une classe hrite

212
213
213
214

3. Communication entre classe de base et classe hritire

216

3.1 Les constructeurs


3.2 Accs aux membres de base depuis l'hritier
3.3 Masquage ou substitution de membres hrits
3.3.1 Codage du masquage
3.3.2 Codage de la substitution

216
219
221
223
225

4. Exercice

226

4.1 nonc
4.2 Corrig

226
227

5. Les classes abstraites

229

6. Les mthodes d'extension

230

www.editions-eni.fr

Editions ENI

5/8

Apprendre la Programmation Oriente Objet avec le


langage C#

7. Le polymorphisme

233

7.1 Comprendre le polymorphisme


7.2 Exploitation du polymorphisme
7.3 Les oprateurs is et as

233
234
235

Communication entre objets


1. L'vnementiel : tre l'coute

237

2. Le pattern Observateur

238

3. La solution C# : delegate et event

242

3.1 Utilisation du delegate dans le design pattern Observateur


3.2 Utilisation d'un event
3.3 Comment accompagner l'event de donnes
3.4 Les generiques en renfort pour encore simplifier
3.5 Les expressions Lambda
3.6 Exemple d'utilisation d'event
4. Appels synchrones, appels asynchrones
4.1 Approche 1
4.2 Approche 2
4.3 Approche 3
4.4 Approche 3 avec une expression Lambda
5. Exercice

245
248
253
254
255
260
268
270
271
272
274
276

5.1 nonc
5.2 Conseils pour la ralisation
5.3 Correction

276
277
278

Le multithreading

www.editions-eni.fr

Editions ENI

6/8

Apprendre la Programmation Oriente Objet avec le


langage C#

1. Introduction

283

2. Comprendre le multithreading

283

3. Multithreading et .NET

287

4. Implmentation en C#

288

4.1 Utilisation d'un BackgroundWorker


4.1.1 Communication du thread principal vers le thread secondaire
4.1.2 Abandon depuis le thread primaire
4.1.3 Communication du thread secondaire vers le thread principal
4.1.4 Communication en fin de traitement du thread secondaire
4.1.5 Exemple de code
4.2 Utilisation du pool de threads crs par .NET
4.3 Gestion manuelle avec Thread/ParameterizedThreadStart
5. Synchronisation entre threads

288
292
293
293
293
294
296
299
304

5.1 Ncessit de la synchronisation


5.2 La dcoration Synchronization
5.3 Le mot-cl lock
5.4 La classe Monitor
5.5 La classe Mutex
5.6 La classe Semaphore

304
306
308
310
311
312

6. Communication interthread

312

6.1 Join
6.2 Les synchronization events

312
314

7. Communication entre thread secondaire et IHM

322

8. Exercice

325

8.1 nonc
8.2 Correction

www.editions-eni.fr

325
326

Editions ENI

7/8

Apprendre la Programmation Oriente Objet avec le


langage C#

Index

www.editions-eni.fr

331

Editions ENI

8/8

You might also like