ProgrammeL2 · S3Programmation et systèmes
L2S3Programmation et systèmes

Programmation orientee objet

Concevoir des programmes autour d’objets, d’interfaces, de l’encapsulation et du polymorphisme.

#Java#C++#classes#objets#polymorphisme
5chapitres
5exercices corrigés
8questions de quiz
0/5chapitres maîtrisés
À LA FIN DE CE COURS

Objectifs d’apprentissage

  • Concevoir des classes Java et C++ qui encapsulent un état et préservent leurs invariants.
  • Écrire des contrats de méthodes, des constructeurs sûrs et une gestion explicite des ressources.
  • Choisir entre héritage et composition en argumentant la substituabilité et le couplage.
  • Utiliser interfaces, classes abstraites et polymorphisme pour remplacer une implémentation sans casser le client.
  • Tester et faire évoluer un modèle objet de gestion de bibliothèque avec des responsabilités séparées.
AVANT DE COMMENCER

Prérequis utiles

  • Maîtriser variables, fonctions, conditions, boucles, tableaux ou collections et compilation de base.
  • Savoir lire une signature de méthode, manipuler des types et interpréter une erreur d’exécution.
  • Connaître les bases de Java ou C++ : fichiers sources, visibilité élémentaire et tests simples.
CHAPITRE 01 L2 · S3

Classes et encapsulation

55 min de lectureLeçon originale de révision

Définitions et méthode

Une classe décrit un type : elle regroupe des attributs et des méthodes. Un objet est une instance créée à partir de ce modèle ; son état doit rester cohérent avec les règles du domaine. L’encapsulation consiste à cacher la représentation et à exposer des opérations contrôlées. En Java, on utilise souvent private puis des méthodes métier ; en C++, on complète avec un constructeur et des invariants vérifiés. Une erreur fréquente est de rendre tous les champs publics : le code appelant peut alors imposer un solde négatif ou une durée impossible.

Exemple résolu. Pour un Compte, l’invariant est solde >= 0. Un dépôt de 30 sur un solde initial de 70 donne 100 ; un retrait de 120 est refusé, donc le solde reste 100. La méthode retourne un succès ou une erreur plutôt que de modifier silencieusement l’état.

Point de contrôle : citer l’invariant, l’opération qui le préserve et le test qui vérifie le refus d’un retrait excessif.

Points à retenir
  • Une classe porte état, opérations et invariant.
  • `private` protège l’état ; les méthodes valident les transitions.
  • Un constructeur doit produire un objet immédiatement cohérent.
Synthèse du chapitre

Une classe décrit un type : elle regroupe des attributs et des méthodes. Un objet est une instance créée à partir de ce modèle ; son état doit rester cohérent avec les règles du domaine.