NSI · Terminale · Programme officiel

Programmation orientée objet et mise au point de programmes en Terminale

Cours complet, points clés à retenir et exercices d'entraînement de programmation orientée objet et mise au point de programmes pour les élèves de Terminale. Conforme au programme officiel.

Réviser notion par notion

Ce que tu vas réviser

  • Classes, objets, attributs et méthodes
  • Encapsulation et interface publique
  • Héritage et polymorphisme
  • Mise au point : assertions, tests unitaires, débogage
  • Modularité et conception logicielle

Classes, objets, attributs et méthodes

Une classe est un modèle qui définit la structure d'un objet. Les attributs sont les caractéristiques de l'objet, et les méthodes sont les actions qu'il peut effectuer.

Exemple

Une classe Voiture avec attributs (couleur, marque, vitesse) et méthodes (accélérer, freiner, klaxonner).

À retenir : Un objet est une instance d'une classe créée avec ses propres valeurs d'attributs.

Encapsulation et interface publique

L'encapsulation consiste à cacher les détails internes d'une classe et à exposer uniquement une interface publique. Cela protège les données et contrôle leur accès.

Exemple

Un distributeur de billets : vous ne voyez que les boutons (interface publique), pas le mécanisme interne qui compte l'argent.

À retenir : Les attributs privés sont protégés par des méthodes publiques (getters et setters) qui contrôlent l'accès.

Héritage et polymorphisme

L'héritage permet à une classe d'hériter des attributs et méthodes d'une classe parent. Le polymorphisme permet à des objets différents de répondre au même message de manière différente.

Exemple

Une classe Animal (parent) avec des sous-classes Chien et Chat qui héritent de la méthode faire_bruit(), mais chacune l'implémente différemment.

À retenir : L'héritage crée une hiérarchie de classes et le polymorphisme permet une même interface pour des comportements différents.

Assertions pour valider les conditions

Une assertion est une vérification qui s'arrête le programme si une condition est fausse. Elle sert à détecter les erreurs logiques pendant le développement.

Exemple

Vérifier qu'un âge n'est pas négatif : assert age >= 0, 'L'âge ne peut pas être négatif'.

À retenir : Les assertions aident à trouver les bugs en testant les hypothèses du code.

Tests unitaires et débogage

Les tests unitaires vérifient que chaque fonction ou méthode fonctionne correctement isolément. Le débogage consiste à trouver et corriger les erreurs en examinant l'exécution du code.

Exemple

Tester une méthode calculer_remise() avec différentes entrées (prix normal, prix réduit, prix zéro) pour vérifier qu'elle donne les bons résultats.

À retenir : Écrire des tests avant ou pendant le code aide à garantir sa qualité et facilite le débogage.

Modularité et conception logicielle

La modularité consiste à diviser un programme en modules indépendants et réutilisables. Une bonne conception logicielle rend le code lisible, maintenable et évolutif.

Exemple

Un jeu vidéo divisé en modules : gestion des joueurs, gestion des ennemis, gestion du score, gestion des collisions.

À retenir : Un code modulaire est plus facile à tester, maintenir et faire évoluer.

Les points clés

  • Une classe définit la structure, un objet est une instance avec des valeurs spécifiques
  • L'encapsulation protège les données en contrôlant l'accès via des méthodes publiques
  • L'héritage permet de réutiliser du code, le polymorphisme permet des comportements différents pour une même interface
  • Les assertions, tests unitaires et débogage sont essentiels pour garantir la qualité du code
  • La modularité rend le code réutilisable et facile à maintenir

L'essentiel

La programmation orientée objet combine classes, héritage et encapsulation pour créer du code modulaire, testable et maintenable.

Exercices d'entraînement

Entraîne-toi sur ces exercices, puis fais-toi corriger pas à pas par le tuteur.

Exercice 1

Concevez un système de gestion de bibliothèque avec les classes `Document`, `Livre` et `Magazine`. Chaque document a un titre, un auteur et une date de publication. Les livres ont un nombre de pages et les magazines ont un numéro d'édition. Implémentez l'encapsulation avec des propriétés (getters/setters) pour valider les données. Utilisez des assertions pour vérifier les invariants (nombre de pages > 0, année de publication valide). Écrivez un test de débogage pour identifier les erreurs dans une implémentation volontairement défectueuse.

Corrige cet exercice avec le tuteur →

Exercice 2

Créez une classe `Voiture` avec les attributs `marque`, `modele` et `vitesse_max`. Implémentez une méthode `accelerer()` qui augmente la vitesse actuelle de 10 km/h, et une méthode `afficher_info()` qui affiche les informations de la voiture. Instanciez deux objets et testez les méthodes.

Corrige cet exercice avec le tuteur →

Autres chapitres de NSI en Terminale

Besoin d’aide sur ce chapitre ?

Crée ton compte et révise avec un tuteur IA qui s’adapte à ton niveau, corrige tes exercices et t’explique pas à pas.

Sans carte bancaire. Résiliable en 1 clic.