Objectifs de l'enseignement
Ce module fait suite à celui de « POO niveau 1 ». Il a pour objectif d’approfondir un certain nombre de concepts de programmation orientée objet (P.O.O), et leurs contreparties conceptuelles et techniques en Java. Il s'agit donc d'un niveau de perfectionnement permettant aussi de renforcer les notions précédemment acquises afin de les maîtriser totalement.
Plan :
Classes abstraites et interfaces
- Méthodes abstraites
- Classes abstraites vs interfaces
- Héritage multiple
- Fonctions comme paramètres de fonctions
- Exemple de la classe abstraite java.lang.Calendar
- Exemple de l’interface java.lang.Cloneable et la méthode clone()
Concepts plus avancés sur les classes et les interfaces
- Classes et interfaces internes
- Classes et interfaces anonymes
Exploration d’un framework de l’API Java : Java Collection Framework
- Architecture générale des collections Java
- Interfaces java.util.List et java.util.Set
- Parcours séquentiel de collections : l’interface java.util.Iterator
- Exemple d’implémentation : tableaux autoredimensionnables - classe java.util.ArrayList
- Exemple d’implémentation : listes chaînées - classe java.util.LinkedList
- Quelques éléments sur les structures de données avec accès par clé unique (interface Map)
Génie logiciel, débogage et test
- Programmation modulaire
- Principes de débogage
- Assertions et exceptions
- Outils Ant et JUnit
Javadoc et javadocs
- Compréhension et exploitation de la documentation Sun de l’API Java (les Javadocs)
- Génération d’une documentation via l’outil (exécutable) javadoc