Programmation avancée en Java

publicité
Plan de cours NFP121
Programmation avancée en Java
Vincent B RETON
Sup’ La Mache/CNAM de Lyon
1 - présentation du déroulement de la formation et du plan de cours associé ;
- génération automatique de la structure d’une application.
À l’aide d’un environnement de développement intégré et des outils associés, l’apprenant génère automatiquement la structure d’une application orientée objets en Java. Une sensibilisation à la nécessité d’une
modélisation à l’aide d’exemples UML complète cette prise en main.
2 - définition de classes et construction d’objets ;
- les packages de Java SE 8 ;
- variables, propriétés, méthodes.
En privilégiant les données, l’apprenant est sensibilisé à la notion de
typage fort de Java. Au cours de cette séance, l’élaboration de petites
applications étend les bases de programmation procédurale précédemment acquises à la manipulation d’objets. La compilation est effectuée
directement en mode commande ou à l’aide de l’IDE. API, JRE et JDK
ainsi que la mise en œuvre d’une applet viennent cloturer la séance.
3 - héritage et polymorphisme ;
- création et utilisation de nouveaux types ;
- classes abstraites et interfaces.
En faisant appel à la spécialisation et à la généralisation de classes,
l’apprenant découvre un contexte de réutilisabilité évolué. Avec la définition de classes abstraites dans lesquelles il déclare les méthodes, il
personnalise leur fonctionnement en leur affectant les instructions appropriés au sein de classes dérivées.
4 - le polymorphisme paramétrique ;
- Listes, Files d’attente et autres éléments relatifs aux collections ;
Après le polymorphisme d’héritage traité lors de la séance précédente,
ce cours met l’accent sur le polymorphisme paramétrique également
appelé généricité. Le regroupement d’objets au sein d’une même entité
et leur exploitation à l’aide de l’API Collections permet d’aller plus
loin avec la manipulation de structures de données.
5 - les patrons de conception ;
- les patrons de structure (1re partie).
Face à un problème de conception courant ce cours apporte une solution générale validée par l’expérience. À l’aide de diagrammes de
classes UML, l’identification et l’utilisation de différents modèles de
conception permettent de bénéficier de règles métier.
6
- les patrons de structure (suite et fin) ;
- autres patrons ;
- les flux de données ;
- accès aux fichiers.
Durant cette séance de nouveaux schémas de classes sont mis en avant.
La représentation de leurs relations avec les autres patrons du GOF
complète cette étude. En deuxième partie de cours, les notions essentielles d’accès aux fichiers sont mises en œuvre permettant ainsi
d’étendre la portée des applications aux périphériques.
7
- programmation concurrente.
Effectuer plusieurs traitement en même temps au sein d’un même processus devient envisageable grâce à la mise en œuvre de threads.
Au cours de cette séance, l’apprenant découvre différents aspects du
pseudo-parallèlisme en Java.
8
- introspection en Java ;
- utilisation d’XML avec Java.
L’exploration du contenu d’une classe sans disposer des fichiers
sources devient réalité. En deuxième partie de cours, cette introspection laisse place à l’exploration d’éléments extérieurs reposant sur des
fichiers XML.
9
- injection de dépendances ;
- notions de programmation en réseau.
Afin de faciliter le processus de changement de classes, ce cours décrit
l’injection de dépendances en Java. En deuxième partie, une introduction à la programmation réseau étend la portée des applications Java.
10 - interface graphique ;
- gestion des évènements.
Au cours de cette séance l’utilisation de primitives graphiques et de
composants évolués issus de Swing ou de JavaFX ouvre de nouvelles
perspectives au développement d’applications sophistiqués. Avec la
gestion des évènements, les actions de l’utilisateur se traduiront par
le traitement souhaité.
11 - assertions et tests unitaires ;
- programmation par contrat.
Dans la perspective de valider et d’assurer le bon fonctionnement d’une
application, quelle que soit son utilisation, cette séance met l’accent sur
l’étude de tests unitaires et de la programmation par contrat.
S’inscrivant dans le cadre d’un tronc commun, le contenu de ce module
contient certaines parties dont la portée ne se limite pas à Java mais s’étend
aux autres langages orientés objet tel que C# ou C++. On peut citer par
exemple l’utilisation d’une modélisation s’appuyant sur UML ou les patrons
de conception. À la fin de la séance 10, des ressources complémentaires sur la
programmation événementielle mettent en avant certaines spécificités.
Pour faciliter l’acquisition des connaissances, à chaque fin de séance un devoir
est proposé.
Téléchargement