Phase 2 – Programmation Orientée Objet (2–3 mois)
Classes, Objets, Attributs et Méthodes
- Structure des classes
- Instanciation des objets
- Utilisation de this
- Meilleures pratiques : nommage, organisation du code
Encapsulation, Héritage, Polymorphisme et Abstraction
- Encapsulation : private, getters/setters, validation
- Inheritance : extends, overriding (@Override)
- Polymorphism : sous-type, method overloading
- Abstraction : aperçu, préparation aux interfaces et classes abstraites
Interfaces et Classes Abstraites
- Interfaces : implements, default methods
- Abstract classes : méthodes abstraites et concrètes
- Différences entre interface et abstract class
Constructeurs, Initialisateurs et Blocs Statiques
- Constructeurs par défaut et paramétrés, appels avec this()
- Blocs d’initialisation ({}) et blocs statiques (static {})
Énumérations
- Création et utilisation d’enum
- Méthodes et attributs dans les enums
Collections de Base
- ArrayList : ajout, suppression, itération (for, forEach, Iterator)
- HashMap : clé-valeur, opérations courantes
- HashSet : élimination des doublons
- Introduction à Queue et Stack (par exemple, LinkedList comme queue/stack)
- Introduction au Java Collections Framework
Algorithmes de Base
- Recherche linéaire et binaire
- Sorting : Bubble Sort, Collections.sort()
- Recursion : concepts et exemples simples (par exemple, factorielle, Fibonacci)
- Introduction à la complexité (O(n), O(log n))
Generics
- Syntaxe (), collections génériques, méthodes génériques
- Limites (extends, super)
Stream API (Introduction)
- Opérations de base : filter, map, collect
- Exemples avec ArrayList
Tests Unitaires (Introduction)
- Utilisation de base de JUnit
- Écriture de cas de test pour les classes et méthodes
- Introduction à TDD (Test-Driven Development)
Projet Final
- Système de Bibliothèque
- Classes : Book, User, Library
- Héritage : DigitalBook et PhysicalBook
- Collections : ArrayList pour les livres, HashMap pour les prêts
- Encapsulation : validation des données
- Git : commit par fonctionnalité (par exemple,
feature/book-management
)
- Publier sur GitHub avec un README explicatif
Ressources Mises à Jour