#Programmation orientée objet en Java
Java reste un langage central dans l’industrie logicielle : la plateforme s’exécute partout, l’écosystème d’outillage est mature et la communauté continue d’adopter les nouveautés du langage. L’ambition de ce module est double. D’une part, revisiter les fondations de la programmation orientée objet avec un regard moderne : quels invariants expliciter, comment maîtriser l’encapsulation ou décider entre héritage et composition. D’autre part, montrer comment Java a évolué ces dernières années — records, pattern matching, API de flux, virtual threads — et en quoi ces apports changent la manière d’écrire un code maintenable.
Le cours adopte une progression narrative. Nous partons d’un modèle métier concret (gestion d’abonnements) afin d’installer le vocabulaire : classes, interfaces, invariants, immutabilité ciblée. Une fois les bases éprouvées, nous introduisons la généricité, les records et les interfaces scellées pour stabiliser les API publiques. L’API Stream et les classes de concurrence modernes servent ensuite à traiter des flux de données et à raisonner sur la performance. Enfin, nous allons jusqu’à l’industrialisation avec un volet dédié au contrôle qualité (tests, observabilité) et un autre qui présente l’outillage : du build automatisé aux pipelines de déploiement.
Chaque chapitre combine des explications didactiques, du code complet commenté et des ateliers guidés. Les projets de synthèse — micro‑service REST, pipeline d’événements, traitement de logs concurrents — permettent d’ancrer les concepts dans des situations réalistes.