Apprendre la Programmation Orientée Objet avec le langage C# (2e édition)

Documents pareils
Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Programmation Orientée Objet en C#

Initiation à JAVA et à la programmation objet.

Chapitre VI- La validation de la composition.

INITIATION AU LANGAGE JAVA

Programmer en JAVA. par Tama

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

TP1 : Initiation à Java et Eclipse

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Une introduction à Java

RTDS G3. Emmanuel Gaudin

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Déployer une application cliente avec le Framework.NET 3.5 Client Profile

Synchro et Threads Java TM

Généralités sur le Langage Java et éléments syntaxiques.

Formations Solti 2013

Création d objet imbriqué sous PowerShell.

LE LANGAGE POWERSHELL

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Auto-évaluation Programmation en Java

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Héritage presque multiple en Java (1/2)

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Projet Active Object

Java c est quoi? Java pourquoi?

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Hébergement et configuration de services WCF. Version 1.0

Cours de Génie Logiciel

WEA Un Gérant d'objets Persistants pour des environnements distribués

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Introduction aux Machines Virtuelles avec VMKit

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

as Architecture des Systèmes d Information

GOL502 Industries de services

Cours 1: Java et les objets

Programmation Objet Java Correction

Vérifier la qualité de vos applications logicielle de manière continue

Programmation par les Objets en Java

Catalogue des formations 2014

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Génie Logiciel avec Ada. 4 février 2013

Exercices INF5171 : série #3 (Automne 2012)

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

La carte à puce. Jean-Philippe Babau

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

Projet gestion d'objets dupliqués

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN :

Bases Java - Eclipse / Netbeans

Module.NET 3 Les Assemblys.NET

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Langage Java. Classe de première SI

MEAD : temps réel et tolérance aux pannes pour CORBA

DES CONCEPTS OBJET PAR JAVA

RMI le langage Java XII-1 JMF

Bases de données et interfaces Génie logiciel

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

DotNet. Plan. Les outils de développement

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

SQL Server 2012 et SQL Server 2014

1 Définition d une classe en Java

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Catalogue des Formations

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Composants Logiciels. Le modèle de composant de CORBA. Plan

Java 1.5 : principales nouveautés

BASES DE DONNEES ORIENTEES OBJETS BDA10.1

UML et les Bases de Données

UML. Diagrammes de classes (suite) Delphine Longuet.

Notions fondamentales du langage C# Version 1.0

Cours STIM P8 TD 1 Génie Logiciel

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

NFP111 Systèmes et Applications Réparties

Support de cours et TD Programmation Orientée Objet

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

Diagramme de classes

Développement Logiciel

Séminaire Partenaires Esri France 7-8 juin Paris Les API ArcGIS pour les smartphones

Programmation Orientée Objet application au langage Java Version Novembre 2007

Programmation Par Objets

HTML5. Développement d applications Web. Visual Studio 2015 et TFS. L art et la manière. avec. Philippe DIDIERGEORGES

Notion de thread (1/2)

Applet pour visualiser les variables «automate» notifiées

Université de Bangui. Modélisons en UML

Transcription:

Introduction à la POO 1. Histoire de la POO 2. Historique du C# 11 14 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 2. La transition vers l'approche objet 3. Les caractéristiques de la POO 3.1 L'objet, la classe et la référence 3.1.1 L'objet 3.1.2 La classe 3.1.3 La référence 3.2 L'encapsulation 3.3 L'héritage 3.4 Le polymorphisme 3.5 L'abstraction 15 16 17 17 17 18 19 20 20 22 23 4. Le développement objet 1/14

4.1 Cahier des charges du logiciel 4.2 Modélisation et représentation UML 4.2.1 Diagrammes de cas d'utilisation 4.2.2 Diagrammes de classes 4.2.3 Énumérations 4.2.4 Diagrammes de séquences 4.3 Rédaction du code et tests unitaires 24 24 24 27 28 34 35 37 Introduction au framework.net et à VS 1. Introduction 2. Environnement d'exécution 3. Le choix des langages 4. Utiliser plusieurs langages 5. Une librairie très complète 6. Des installations simplifiées 7. Un outil de développement complet 39 39 40 40 41 42 44 2/14

Les types du C# 1. "En C#, tout est typé!" 2. "Tout le monde hérite de System.Object" 2.1 Les types Valeurs 2.2 Les types Référence 2.3 Boxing - Unboxing 2.4 Utilisation des méthodes 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 opérateurs typeof et is 2.4.6 Object.ReferenceEquals 2.4.7 Object.MemberwiseClone 2.5 Le type System.String et son alias string 3. Exercice corrigé 3.1 Énoncé 3.2 Correction 51 56 56 60 61 62 63 66 68 69 70 71 72 75 79 79 79 3/14

Création de classes 1. Introduction 2. Les espaces de noms 3. Déclaration d'une classe 3.1 Accessibilité des membres 3.2 Attributs 3.2.1 Attributs constants 3.2.2 Attributs en lecture seule 3.3 Propriétés 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 paramètres par défaut 3.4.4 Chaînage 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 83 83 90 91 92 93 94 95 103 103 105 105 106 107 108 110 111 4/14

3.6 Autre utilisation de using 3.7 Le mot-clé this 3.8 Méthodes 3.8.1 Déclaration 3.8.2 Passage par valeur et passage par référence 3.9 Mécanisme des exceptions 3.9.1 Présentation 3.9.2 Principe de fonctionnement des exceptions 3.9.3 Prise en charge de plusieurs exceptions 3.9.4 try... catch... finally et using 3.10 Surcharge des méthodes 3.11 Exercice 3.11.1 Énoncé 3.11.2 Conseils 3.11.3 Correction 4. Les interfaces 4.1 Introduction 4.2 Le contrat 4.3 Déclaration d'une interface 4.4 Implémentation 113 114 117 117 121 136 136 137 147 148 152 154 154 155 155 158 158 159 160 161 5/14

4.5 Visual Studio et les interfaces 4.6 Représentation 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 agrégation 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 énumérateurs 5.2.5 La magie du yield 5.3 Exercice 5.3.1 Énoncé 5.3.2 Correction 163 165 165 166 166 167 169 173 175 182 189 190 193 193 194 195 197 197 198 6. Les classes imbriquées 6/14

200 7. Les structures 7.1 Déclaration d'une structure 7.2 Instanciation d'une structure 8. Les classes partielles 9. Les méthodes partielles 10. Les indexeurs 11. Surcharge d'opérateurs 203 203 205 208 209 210 214 Héritage et polymorphisme 1. Comprendre l'héritage 2. Codage de la classe de base et de son héritière 2.1 Interdire l'héritage 2.2 Définir les membres héritables 2.3 Codage de l'héritage 2.4 Exploitation d'une classe héritée 219 220 220 221 221 222 3. Communication entre classe de base et classe héritière 7/14

3.1 Les constructeurs 3.2 Accès aux membres de base depuis l'héritier 3.3 Masquage ou substitution de membres hérités 3.3.1 Codage du masquage 3.3.2 Codage de la substitution 4. Exercice 4.1 Énoncé 4.2 Corrigé 5. Les classes abstraites 6. Les méthodes d'extension 7. Le polymorphisme 7.1 Comprendre le polymorphisme 7.2 Exploitation du polymorphisme 7.3 Les opérateurs is et as 223 223 227 229 231 232 234 234 235 237 238 241 241 242 242 Communication entre objets 1. L'événementiel : être à l'écoute 243 8/14

2. Le pattern Observateur 3. La solution C# : delegate et event 3.1 Utilisation du delegate dans le design pattern Observateur 3.2 Utilisation d'un event 3.3 Comment accompagner l'event de données 3.4 Les génériques 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 5.1 Énoncé 5.2 Conseils pour la réalisation 5.3 Correction 244 248 251 254 257 258 259 265 272 275 276 276 279 281 281 282 282 9/14

Le multithreading 1. Introduction 2. Comprendre le multithreading 3. Multithreading et.net 4. Implémentation en C# 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 créé par.net 4.3 Gestion «manuelle» avec Thread/ParameterizedThreadStart 5. Synchronisation entre threads 5.1 Nécessité de la synchronisation 5.2 La décoration Synchronization 5.3 Le mot-clé lock 5.4 La classe Monitor 287 287 290 292 292 295 296 296 296 297 299 302 307 307 309 311 312 10/14

5.5 La classe Mutex 5.6 La classe Semaphore 6. Communication entre threads 6.1 Join 6.2 Les synchronization events 6.3 Communication entre threads secondaires et IHM 6.4 Exercice 6.4.1 Énoncé 6.4.2 Correction 7. La programmation asynchrone 7.1 Le mot-clé async 7.2 Contenu d une méthode async 7.3 Preuve à l appui 7.4 Retours possibles d une méthode async 313 315 315 315 317 324 328 328 328 333 333 333 334 335 P-Invoke 1. Introduction 1.1 Rappel sur les DLL non managées 1.2 P-Invoke et son Marshal 339 340 11/14

340 2. Le cas simple 2.1 Déclaration et appel 2.2 Réglage de Visual Studio pour la mise au point 3. Appel avec paramètres et retour de fonction 4. Traitement avec des chaînes de caractères 4.1 Encodage des caractères 4.2 Encodage des chaînes 4.3 Transmission des chaînes 5. Échange de tableaux 5.1 Du C# au C/C++ 5.2 Du C# au C/C++ puis retour au C# 6. Partage de structures 6.1 Déclaration des structures 6.2 Utilisation des structures 7. Les directives [In] et [Out] 8. Réalisation d un "wrapper" 341 342 345 345 348 348 349 349 352 352 354 356 356 359 362 366 12/14

8.1 Une région "NativeMethods" 8.2 Stockage des informations de la DLL native 8.3 Instanciation de DLL native 8.4 Méthodes d utilisation de la DLL managée depuis le wrapper 8.5 Utilisation du wrapper 9. Exercice 9.1 Énoncé 9.2 Correction 367 368 369 372 373 374 374 375 Les tests 1. Introduction 2. Environnement d exécution des tests unitaires 3. Le projet de tests unitaires 4. La classe de tests 5. Contenu d une méthode de test 6. Traitements de préparation et de nettoyage 377 379 382 383 384 387 13/14

7. TestContext et source de données 8. Automatisation des tests à la compilation 9. Automatisation des tests en dehors de Visual Studio 10. CodedUI 11. Exercice 11.1 Énoncé 11.2 Correction 390 394 395 396 397 397 398 Index 401 14/14