Objectifs de l'enseignement :
L'objectif de ce module est d'acquérir la maîtrise de concepts avancés de la programmation en Java permettant de concevoir des applications de bonne qualité. Plusieurs notions sensibles de la syntaxe Java sont étudiées au regard des principes de bonne programmation tels que compréhensibilité, maintenabilité, évolutivité, SOLID, cohérence avec l'API standard : visibilité, composition, agrégation, délégation, abstraction, interface, immuabilité, classe interne, classe anonyme, égalité d'objets, relation d'ordre entre objets, itérabilité. L'utilisation conjointe d'UML pour modéliser la structure des programmes est un soutien à l'activité de conception. Enfin, des outils du JDK sont expérimentés pour aider au développement.
Plan du cours :
- Conception par objets, principes de POO, mise en œuvre avec UML et Java
- Gestion de projets Java et documentation avec javadoc
- Composition, agrégation, classe interne
- Immuabilité
- Niveaux de visibilité
- Abstraction, interface
- Itérations, comparaison d'objets, duplications d'objets
- Classes utilitaires de base : Object, System, Scanner, String, StringBuilder, classes d'emballage des types primitifs, ArrayList, Objects, Arrays.