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



Documents pareils
Initiation à JAVA et à la programmation objet.

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

INITIATION AU LANGAGE JAVA

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

TP1 : Initiation à Java et Eclipse

Chapitre VI- La validation de la composition.

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

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

CQP Développeur Nouvelles Technologies (DNT)

Programmer en JAVA. par Tama

Synchro et Threads Java TM

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

IFT2255 : Génie logiciel

Threads. Threads. USTL routier 1

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

Une introduction à Java

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

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

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)

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

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

Introduction : les processus. Introduction : les threads. Plan

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

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

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

Cours 1: Java et les objets

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

Cours de Génie Logiciel

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

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

as Architecture des Systèmes d Information

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

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

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Langage Java. Classe de première SI

Auto-évaluation Programmation en Java

Jacques Lonchamp. Conception. d applications en Java/JEE. Principes, patterns et architectures

On appelle variable condition une var qui peut être testée et

Java c est quoi? Java pourquoi?

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Chapitre 10. Les interfaces Comparable et Comparator 1

Projet gestion d'objets dupliqués

UML. Diagrammes de classes (suite) Delphine Longuet.

Formation : Modélisation avec UML 2.0 et Mise en pratique

Cours STIM P8 TD 1 Génie Logiciel

Catalogue des Formations

Java - RMI Remote Method Invocation. Java - RMI

Notion de thread (1/2)

Traduction des Langages : Le Compilateur Micro Java

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

Projet Active Object

Application web de gestion de comptes en banques

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

java : Langage et Environnement

Université de Bangui. Modélisons en UML

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

Diagramme de classes

Programmation Orientée Objet en C#

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

Classe Interne, Anonyme & Enumération

Table des matières Sources

Cours en ligne Développement Java pour le web

Talend Technical Note

Programmation par les Objets en Java

Java 1.5 : principales nouveautés

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Bases Java - Eclipse / Netbeans

Programmation Orientée Objet - Licence TIS CM8/9. Rappel sur la séance précédente. Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.

Par Laurent DESECHALLIERS. Mastère Spécialisé en Management de Projets en Milieu Industriel. CESI de Rouen Promotion 2002/2003.

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

GOL502 Industries de services

Formations Solti 2013

TP1 : Initiation à Java et Eclipse

Support de cours et TD Programmation Orientée Objet

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Description de la formation

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

LOG4430 : Architecture et conception avancée

Programmation Objet - Cours II

Modélisation avec UML

Méthodologies Orientées-Objet!

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)

Analyse par Objets. avec UML (Unified Modeling Language) Pr. Jean-Marc Jézéquel IRISA - Univ. Rennes I

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

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

F. Barthélemy. 17 mai 2005

CPR Informatique. (poste 3159 ou 3164) Septembre 2002

Programmation Orientée Objet

PROGRAMMATION PAR OBJETS

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

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

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

Devenez un véritable développeur web en 3 mois!

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

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

Transcription:

Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les caractéristiques de la POO 15 3.1 L'objet, la classe et la référence 15 3.1.1 L'objet 15 3.1.2 La classe 17 3.1.3 La référence 18 3.2 L'encapsulation 18 3.3 L'héritage 19 3.4 Le polymorphisme 21 3.5 L'abstraction 22 4. Le développement objet 23 4.1 Cahier des charges du logiciel 23 4.2 Modélisation et représentation UML 23 4.2.1 Diagrammes de cas d'utilisation 26 4.2.2 Diagrammes de classes 27 4.2.3 Les énumérations 33 4.2.4 Diagrammes de séquences 34 4.3 Codage, intégration et mise en production 36 1/7

Introduction à la plate-forme Java 1. Introduction 39 2. Environnement d'exécution 41 3. Une librairie très complète 42 4. Des outils de développement performants 43 5. Téléchargement puis installation de NetBeans 43 6. L'incontournable Hello World 46 Les types en Java 1. Introduction 55 2. Les types "primitifs" 56 3. Les types "référence" 58 4. Pour nous aider... 60 5. La superclasse java.lang.object 64 5.1 equals 64 5.2 hashcode 67 5.3 tostring 69 5.4 finalize 71 5.5 getclass,.class et l'opérateur instanceof 71 5.6 clone 73 2/7

5.7 notify, notifyall et wait 78 6. La classe java.lang.string 78 7. Exercice corrigé 82 7.1 Énoncé 82 7.2 Correction 83 Création de classes 1. Introduction 87 2. Package 87 3. Déclaration d'une classe 94 3.1 Accessibilité des membres 96 3.2 Attributs 96 3.2.1 Attributs constants 97 3.3 Accesseurs 99 3.4 Constructeurs 104 3.4.1 Étapes de la construction d'un objet 104 3.4.2 Surcharge de constructeurs 106 3.4.3 Chaînage de constructeurs 107 3.4.4 L'initialiseur static 110 3.4.5 L'initialiseur dynamique 111 3.4.6 Les constructeurs de type private 113 3.4.7 Le "builder pattern" 115 3.5 Destructeurs 118 3.6 Le mot clé this 123 3.7 Méthodes 125 3.7.1 Déclaration 126 3.7.2 Passages de paramètres par valeur 129 3.8 Surcharge des méthodes 136 3/7

3.9 Mécanisme des exceptions 138 3.9.1 Présentation 138 3.9.2 Principe de fonctionnement des exceptions 140 3.9.3 Prise en charge de plusieurs exceptions 150 3.10 Exercice 151 3.10.1 Énoncé 151 3.10.2 Conseils 152 3.10.3 Correction 153 4. Les interfaces 156 4.1 Introduction 156 4.2 Le contrat 156 4.3 Déclaration d'une interface 157 4.4 Implémentation 159 4.5 NetBeans et les interfaces 161 4.6 Représentation UML d'une interface 163 4.7 Interfaces et polymorphisme 163 4.8 Exercice 164 4.8.1 Énoncé 164 4.8.2 Conseils 165 4.8.3 Correction 168 4.9 Les interfaces de la machine virtuelle Java 172 5. Association, composition et agrégation 175 5.1 Les tableaux 182 5.2 Les collections 189 5.2.1 ArrayList<E> et LinkedList<E> 193 5.2.2 Queue<T> et Stack<T> 196 5.2.3 HashMap<K, V> 196 5.2.4 Les "itérateurs" 197 5.3 Exercice 199 5.3.1 Énoncé 199 5.3.2 Correction 200 6. Les classes imbriquées 202 4/7

7. Quelques différences avec le C# 206 Héritage et polymorphisme 1. Comprendre l'héritage 207 2. Codage de la classe de base (superclasse) et de son héritière (sous-classe) 208 2.1 Interdire l'héritage 208 2.2 Définir les membres héritables 209 2.3 Syntaxe de l'héritage 210 2.4 Exploitation d'une classe héritée 210 3. Communication entre classe de base et classe héritière 212 3.1 Les constructeurs 212 3.2 Accès aux membres de la classe de base depuis l'héritier 216 3.3 Méthodes virtuelles 219 3.4 Méthodes de type "final" 224 4. Exercice 226 4.1 Énoncé 226 4.2 Corrigé 227 5. Les classes abstraites 230 6. Le polymorphisme 231 6.1 Comprendre le polymorphisme 231 6.2 Exploitation du polymorphisme 232 6.3 Les opérateurs instanceof et () 233 Communication entre objets 5/7

1. L'événementiel : être à l'écoute 235 2. Le pattern Observateur 236 2.1 Généralités 236 2.2 Implémentation en 237 2.3 Les "listeners" 243 2.4 Utilisation d'un listener dans une application graphique 244 3. Exercices 251 3.1 Exercice 1 : Énoncé 251 3.2 Exercice 1 : Correction 252 3.3 Exercice 2 : Énoncé 255 3.4 Exercice 2 : Correction 255 4. Appels synchrones, appels asynchrones 258 Le multithreading 1. Introduction 261 2. Comprendre le multithreading 261 3. Multithreading et Java 264 4. Implémentation des threads en Java 265 4.1 Étendre la classe Thread 265 4.2 Implémenter l'interface Runnable 268 4.3 S'endormir et S'attendre 270 4.4 Abandon depuis le thread primaire 272 4.5 Threads et classes anonymes 275 4.5.1 Avec l'interface Runnable 275 6/7

4.5.2 Avec la classe Thread 276 4.5.3 Accès aux variables et aux données membres simplifié 277 5. Synchronisation entre threads 281 5.1 Nécessité de la synchronisation 281 5.2 Les méthodes "synchronized" 283 5.3 Les traitements "synchronized" 285 5.4 La classe Semaphore 286 6. Communication interthread 289 6.1 La méthode join 289 6.2 Les objets de synchronisation 291 7. Exercice 301 7.1 Énoncé 301 7.2 Correction 302 Index 309 7/7