Arnaud PÊCHER
Université de Bordeaux 1 (LaBRI)
http://www.labri.fr/pecher/pmwiki/pmwiki.php/Teaching/2012
AP3 - programmation orientée objet en Java
DUT Informatique
support de cours basé sur celui de Mickaël Montassier (2011-2012)
2012-2013
Table des matières
1 Semaines 1 & 2 : héritage, polymorphisme, transtypage, classes abstraites et interfaces 1
1.1 Semaine 1 : présentation de Java ................................... 1
1.1.1 Préambule .......................................... 2
1.1.2 Premiers pas ......................................... 2
1.1.3 Génération automatisée de la documentation : javadoc ................... 2
1.1.4 Eléments de la syntaxe via l’exemple "Bicycle" ....................... 3
1.1.4.1 Déclaration d’une classe .............................. 4
1.1.4.2 Package ...................................... 5
1.1.4.3 Déclaration des variables ............................. 5
1.1.4.4 Instanciation des variables ............................. 6
1.1.4.5 Libération des variables .............................. 7
1.1.4.6 Déclaration d’une méthode ............................ 7
1.1.4.7 Méthodes statiques ................................ 7
1.1.5 Héritage, polymorphisme, transtypage ............................ 8
1.1.6 Classes abstraites et interfaces ................................ 9
1.1.7 Exercice à rendre en fin de séance (par binôme) ....................... 10
1.2 Semaine 2 : application - modélisation d’un labyrinthe ....................... 12
2 Semaines 3 & 4 : interfaces graphiques en SWING 15
2.1 Semaine 3 : la librairie graphique SWING .............................. 15
2.1.1 Composants .......................................... 16
2.1.2 Component vs. Container .................................. 16
2.1.3 Gestionnaire d’affichage/LayoutManager .......................... 16
2.1.4 Exemple : fenêtre principale ................................. 17
2.1.5 Graphics ........................................... 17
2.1.6 Réponse aux événements ................................... 18
2.1.7 Exercice : changement de couleur d’une ellipse lors d’un clic ................ 19
2.1.8 Exercice à rendre : le jeu de Taquin ............................. 20
2.2 Semaine 4 : applications - modifications de l’interface graphique du labyrinthe ........... 27
3 Semaines 5 & 6 : exceptions, collections 29
3.1 Semaine 5 : exceptions et collections ................................. 29
3.1.1 Exceptions .......................................... 29
3.1.1.1 Motivation ..................................... 29
3.1.1.2 Synthèse ...................................... 32
3.1.1.3 Compléments ................................... 32
3.1.1.4 Exercice : ThrowTest ............................... 33
3.1.2 Collections .......................................... 34
3.1.2.1 L’interface Collection ............................... 34
3.1.2.2 Prototype ...................................... 34
3.1.2.3 Les listes doublement chaînées .......................... 35
3.1.2.4 les vecteurs ou tableaux dynamiques ....................... 36
3
4TABLE DES MATIÈRES
3.1.2.5 Les tables de hachage ............................... 36
3.1.2.6 les collections ordonnées ............................. 36
3.1.2.7 Les vues ...................................... 36
3.1.2.8 Opérations de masse ................................ 37
3.1.2.9 Algorithmes .................................... 37
3.1.3 Exercice à rendre : tri des arcs d’un graphe ......................... 37
3.2 Semaine 6 : application - mode multi-personnages et exceptions ExceptionSortie ...... 37
4 Semaines 7 & 8 : JUnit, sérialisation, RMI 41
4.1 Semaine 7 : cours ........................................... 41
4.1.1 JUnit : tests unitaires ..................................... 41
4.1.2 Sérialisation : objets persistants ............................... 42
4.1.2.1 L’interface Serializable .............................. 42
4.1.2.2 La classe ObjectOutputStream .......................... 42
4.1.2.3 Exemple ...................................... 42
4.1.2.4 La classe ObjectInputStream ........................... 43
4.1.3 RMI .............................................. 43
4.1.3.1 RMI ........................................ 43
4.1.3.2 Instanciation de l’objet distant ........................... 43
4.1.3.3 Exemple ...................................... 44
4.1.3.4 Coté client ..................................... 44
4.1.3.5 Gestionnaire de sécurité .............................. 44
4.2 Semaine 8 : application finale ..................................... 45
Chapitre 1
Semaines 1 & 2 : héritage, polymorphisme,
transtypage, classes abstraites et interfaces
L’objet de cette partie est de présenter le modèle objet utilisé par Java : notions d’objets, de classes, d’instances,
héritage, super-classe, sous-classe, polymorphisme, transtypage, classes abstraites et interfaces.
Cette première partie est volontairement longue : vous avez déjà vu ces notions dans le cadre de la découverte
du langage C++. Il s’agît donc ici d’un survol de ces notions, avec la mention des principales particularités de
Java.
L’ensemble des fichiers de cette séance est disponible dans : /net/Bibliotheque/AP3/TD01/code/
Sommaire
1.1 Semaine 1 : présentation de Java ................................. 1
1.1.1 Préambule ......................................... 2
1.1.2 Premiers pas ........................................ 2
1.1.3 Génération automatisée de la documentation : javadoc .................. 2
1.1.4 Eléments de la syntaxe via l’exemple "Bicycle" ...................... 3
1.1.5 Héritage, polymorphisme, transtypage ........................... 8
1.1.6 Classes abstraites et interfaces ............................... 9
1.1.7 Exercice à rendre en fin de séance (par binôme) ...................... 10
1.2 Semaine 2 : application - modélisation d’un labyrinthe ..................... 12
1.1 Semaine 1 : présentation de Java
Java est un langage de programmation orienté objet (POO). Voici quelques avantages et particularités de Java :
portabilité via une Machine virtuelle
robustesse avec notamment une gestion de la mémoire simplifiée (ramasse miette)
rapidité de développement grâce à des librairies (API - Application Programming Interface) performantes
et variées
publication sur internet - Applets,Services webs
documentation automatique via l’utilitaire javadoc
programmation réseau simplifiée
– etc
Java propose pour cela une plateforme logicielle complète (une plateforme est un environnement sur lequel un
programme tourne) composée de
1
1 / 50 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !