Cursus
Formation Introduction à la Programmation Orientée Objet
Objectifs
Appréhender les différences entre la programmation procédurale et orientée objet.
Connaître les notions de classe, objet, attribut, méthode, encapsulation et héritage.
Apprendre à utiliser UML pour représenter des classes et des relations.
Savoir définir des propriétés, des constructeurs et des méthodes de traitement.
Comprendre les concepts d’association, de composition et d’agrégation.
Utiliser l’héritage pour créer des hiérarchies de classes et le polymorphisme pour des méthodes génériques.
Définir et utiliser des classes et méthodes abstraites.
Appliquer des solutions éprouvées pour résoudre des problèmes récurrents en programmation.
Identifier les limitations des codes procéduraux et les améliorer avec des concepts objets.
Pré-requis
Participants
Programme de formation
INTRODUCTION
Historique des langages de programmation
Les différents paradigmes de programmation
La programmation procédurale
La programmation orientée objet
Comparatifs entre les langages objets Java, C# (.NET) et C++
LIMITATIONS À LA PROGRAMMATION PROCÉDURALE
Structuration d'un projet procédural
Gestion de la modularité
L'intégrité des données manipulées
La réutilisation de code
Risques relatifs à la duplication des codes et aux codes morts
Travaux pratiques : Analyse de codes écrits en style procédurale et mise en évidence des problèmes évoqués dans le chapitre
QU'EST-CE QUE LA PROGRAMMATION ORIENTÉE OBJET ?
Quelques points de terminologie : classe, objet, attribut...
Approche de développement orienté Composant et sensibilisation à la notion de tests unitaires
Nécessité de visualisation de la structure des codes
Le formalisme UML et la notion de diagramme de classe
Travaux pratiques : Introduction à la manipulation d'un modeleur UML
La notion de classes : une autre manière de voir la modularité
Le principe d'encapsulation et pourquoi protéger les données
Le concept d'héritage
Travaux pratiques : Edition d'un diagramme UML pour représenter les différents concepts évoqués.
Les processus de développements orientés objets
MISE EN OEUVRE DE L'ENCAPSULATION
Les niveaux de visibilités public et private
La protection des membres
Définition de propriétés (getter/setter)
Définition de constructeurs
Définition de méthodes de traitement
Formalisme UML associé à l'encapsulation
Travaux pratiques : Définition d'une classe Contact pour un logiciel de type "Agenda" et mise en oeuvre des différents concepts étudiés
MISE EN ASSOCIATION D'OBJETS
Association, composition et agrégation
Formalisme UML associé aux mises en association
Gestions des collections d'objets
Travaux pratiques : Ajout de classes de coordonnées (téléphoniques, postales et emails) à notre classe de contacts.
MISE EN OEUVRE DE L'HÉRITAGE
Mise en oeuvre de l'héritage
Concept de polymorphisme
Formalisme UML associé à l'héritage
Travaux pratiques : Extension de notre classe de Contact
La notion de méthodes abstraites, de classes abstraites et d'interfaces
Travaux pratiques : Utilisation de types abstraits pour réaliser un moteur de sélection de contacts selon différents critères
UTILISATION DE DESIGN PATTERNS DANS LA CONCEPTION D'UNE APPLICATION
Un design pattern, une solution éprouvée pour répondre à une problématique récurrente en programmation informatique
Classification des principaux design patterns (patterns GoF)
Design patterns et UML
Travaux pratiques : Intégration de quelques Design Patterns dans notre application de gestion de contacts