Passer au contenu

B.3 · Programmation orientée objet

Baccalauréat international · IB Diploma · Computer Science · HL · Sujet 7

7.1

Champ d'application et prérequis

Focus HL soutenu. Première évaluation 2027 cible ; retours PDF officiels 403 ; le bref acquis plus ancien est l'évaluation finale 2026. Le guide restant, l'évaluation et les exigences pratiques conservent leurs retenues enregistrées.

Prérequis : lisez les quantités et unités indiquées, utilisez l'arithmétique et les conditions du modèle ci-dessous. Chaque leçon développe sa propre méthode avant un transfert autonome.

Ce sont des exemples pédagogiques originaux ou explicitement fictifs, pas des mesures réelles ni des enquêtes évaluées achevées par des apprenants.

7.2

Objets : état, comportement et interface

Qu'est-ce qui expliquerait cette observation ?

  • Deux objets de modèle de compte bancaire peuvent répondre à la même opération de dépôt tout en ayant des soldes différents.
  • Commencez par une prédiction. Énoncez les quantités ou caractéristiques que vous compareriez, puis décidez quels éléments de preuve pourraient distinguer deux explications.

Construire le modèle

  • Une classe définit un type avec un état et un comportement. Un objet est une instance. L'encapsulation contrôle l'accès via une interface afin que les opérations puissent préserver les invariants. L'héritage modélise une relation de type appropriée ; la composition modélise un objet contenant ou utilisant un autre objet.
  • encapsulation : Contrôle de l'accès à l'état via une interface ; instance : Objet individuel d'une classe.
Objets : état, comportement et interface : diagramme original avec cas corrigé

Choisir des preuves capables de le tester

  • Un appel de méthode agit sur une instance particulière. Les changements d'état doivent respecter les préconditions et postconditions. Le polymorphisme permet au code d'utiliser une interface commune avec différentes implémentations lorsque le contrat est respecté.
  • Implémenter un petit modèle synthétique de compte ou d'inventaire. Tester deux instances indépendantes, rejeter les opérations invalides et les valeurs limites. Garder le modèle éloigné des comptes financiers réels et des identifiants.

Travailler à partir de quantités connues

  • Énoncez les valeurs connues et leurs unités. Choisissez la relation dont les hypothèses s'adaptent à ce cas, puis réarrangez-la avant de substituer les valeurs.
  • Connu : l'objet A commence à 40 unités et reçoit 15 ; l'objet B commence à 20 et reçoit 5. Les soldes finaux sont 55 et 25. Leur total est 80, mais aucun solde d'objet individuel n'est 80.

Exemple :

Une instance commence à 12 unités, ajoute 8 et retire 3. Trouver sa valeur finale. Utiliser la même séquence : quantités connues → modèle → relation → substitution → unité et interprétation.


Vérifier la conclusion et ses limites

  • Une classe n'est pas la même chose qu'une seule instance. L'héritage n'est pas automatiquement supérieur à la composition. Cacher simplement un champ ne prouve pas que toutes les opérations préservent un état valide.
  • Revenez à l'observation initiale. Expliquez ce que le résultat soutient, quelles conditions il suppose, et une manière de tester une explication concurrente.

Avertissement :

Deux instances d'une classe doivent toujours partager un seul solde. Cette affirmation est fausse : Une classe n'est pas la même chose qu'une seule instance. L'héritage n'est pas automatiquement supérieur à la composition. Cacher simplement un champ ne prouve pas que toutes les opérations préservent un état valide.

Clé :

Objets : état, comportement et interface : Un appel de méthode agit sur une instance particulière. Les changements d'état doivent respecter les préconditions et postconditions. Le polymorphisme permet au code d'utiliser une interface commune avec différentes implémentations lorsque le contrat est respecté.

Trace exécutable et limite

class Account:
    def __init__(self, balance):
        self.balance = balance
    def withdraw(self, amount):
        if amount < 0 or amount > self.balance:
            return False
        self.balance -= amount
        return True
a, b = Account(15), Account(20)
print(a.withdraw(30), a.balance, b.balance)
print(a.withdraw(15), a.balance, b.balance)

Sortie attendue :

False 15 20
True 0 20

Le rejet intervient avant la mutation. Avec des soldes initiaux non négatifs, les retraits validés préservent un solde ≥ 0. Cette petite classe pédagogique expose des attributs ; une conception de production doit contrôler tous les chemins de mutation, sans supposer que la méthode seule garantit l'encapsulation.

Vocabulaire Entrainer
English Français
instance/ˈɪnstəns/ instance : un objet
encapsulation/ɪnˌkæpsjʊˈleɪʃn/ encapsulation : encapsulation

Plus de sujets dans Baccalauréat international · IB Diploma · Computer Science · HL

Se connecter ou créer un compte

IGCSE, A-Level & AP