Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

16 chapitres5 h 50 minIntermédiaire

Programmation orientée objet en C#

Cours de programmation orientée objet en C# pour le BTS SIO SLAM : classes, encapsulation, héritage, polymorphisme, interfaces, SOLID, exercices corrigés.

Par Josselyn C., prof de BTS SIO. Mis à jour le .

L'essentiel

La programmation orientée objet (POO) est une façon d'organiser un programme en objets qui regroupent des données et les traitements qui s'y appliquent : un ticket d'assistance connaît son titre et son statut, et sait lui-même s'il peut être résolu. C'est la manière dont sont écrits presque tous les logiciels de gestion. Au BTS SIO, elle est au cœur du bloc 2 de l'option SLAM : tu l'utilises dans tes réalisations professionnelles, tu fais évoluer tes propres classes pendant l'heure de réalisation de l'E6, et l'écrit E7 te demande de lire, compléter et corriger des classes métier.

Ce cours enseigne la POO en C#, avec .NET 10, en partant des bases du langage : si tu as déjà fait de l'algorithmique ou un peu de JavaScript, tu as le niveau.

Avant ce cours : savoir écrire un algorithme simple avec des variables, des conditions et des boucles (cours Algorithmique). Avoir pratiqué un premier langage, comme JavaScript, aide mais n'est pas obligatoire : le chapitre 1 donne les bases de C# dont tu as besoin.

À la fin de ce cours, tu sauras :

  • écrire des classes en C# qui protègent leurs données et naissent valides ;
  • traduire un diagramme de classes UML en code, associations et compositions comprises ;
  • manipuler des collections d'objets avec List, Dictionary et LINQ ;
  • utiliser l'héritage, le polymorphisme, les classes abstraites et les interfaces à bon escient ;
  • gérer les erreurs avec des exceptions, y compris tes propres exceptions métier ;
  • concevoir des classes faciles à faire évoluer et à tester : principes SOLID, patrons de conception, injection de dépendances, tests unitaires avec xUnit ;
  • lire et compléter du code objet écrit en Java ou en PHP, comme dans les sujets d'E7.

Le fil rouge. Tous les exemples construisent la couche métier de GestParc, l'application de gestion du parc informatique et de l'assistance de Sorbier Logistique, une entreprise fictive de 14 salariés. C'est la même entreprise et le même modèle de données que dans le cours SQL (les exemples en mémoire utilisent des valeurs simplifiées) : des employés rattachés à des services, des postes, des portables, des imprimantes, des logiciels avec leurs licences, des tickets et leurs interventions. Le cours C# et WinForms montre ensuite comment donner une interface graphique à des classes de ce genre et les relier à MySQL.

Les versions. Le code est écrit pour .NET 10 (version à support long, maintenue jusqu'au 14 novembre 2028) et C# 14. Les exemples ont été compilés et exécutés avec le SDK .NET 10 ; les sorties affichées sont celles d'un système réglé en français. .NET 11 et C# 15 sortent en novembre 2026, avec un support court (STS) : rien de ce cours ne change avec eux. Les rares nouveautés récentes du langage (le mot-clé field, le constructeur principal) sont signalées, avec leur forme classique, celle des sujets d'examen.

Comment travailler. Installe le SDK (chapitre 1), crée un projet console et tape chaque exemple toi-même : la POO s'apprend en écrivant des classes. Chaque chapitre se termine par des exercices dont la réponse est masquée : cherche d'abord, ouvre ensuite. Le chapitre 16 rassemble des exercices de synthèse du type E6 et E7 et un aide-mémoire.

Ton objectifChapitres à travailler en priorité
Découvrir la POO1 à 4, puis 7 et 8
Préparer l'écrit E7 SLAM (lire et écrire des classes)2, 3, 5, 7 à 10, 16
Préparer l'E6 SLAM (faire évoluer ta réalisation)3, 5, 6, 10, 13 à 15
Passer au client lourd WinForms1 à 6, 10, 13, puis le cours C# et WinForms
Écrire du code professionnel11 à 15

Les notions voisines ont leur propre cours, auquel celui-ci renvoie : la notation UML dans UML, l'organisation d'une application en couches dans Architecture MVC, la démarche de test dans Tests unitaires et non-régression, et la sécurité du code dans Sécurité applicative.

Sommaire

0%

POO en C#

0 chapitre sur 16

  1. Chapitre 1 : Les bases de C# pour la POO25 min
  2. Chapitre 2 : Classe et objet : la POO expliquée21 min
  3. Chapitre 3 : Encapsulation : propriétés get et set26 min
  4. Chapitre 4 : Constructeurs et membres static19 min
  5. Chapitre 5 : Associations et composition : du diagramme de classes au code26 min
  6. Chapitre 6 : Collections, génériques et LINQ : List, Dictionary22 min
  7. Chapitre 7 : Héritage en C# : classe mère et classe fille20 min
  8. Chapitre 8 : Polymorphisme : virtual, override et surcharge21 min
  9. Chapitre 9 : Classe abstraite et interface : différence et usages19 min
  10. Chapitre 10 : Exceptions : try, catch et exceptions personnalisées24 min
  11. Chapitre 11 : Égalité, Equals, GetHashCode, ToString et records18 min
  12. Chapitre 12 : Les principes SOLID expliqués avec des exemples19 min
  13. Chapitre 13 : Design patterns : Repository, Stratégie, Fabrique, Singleton23 min
  14. Chapitre 14 : Injection de dépendances et attributs en C#21 min
  15. Chapitre 15 : Tester une classe métier avec xUnit17 min
  16. Chapitre 16 : POO à l'examen : méthode, exercices corrigés et aide-mémoire29 min
Commencer le cours

Questions fréquentes

C'est quoi la programmation orientée objet ?

La programmation orientée objet (POO) organise un programme en objets qui regroupent des données (leur état) et les méthodes qui agissent sur ces données (leur comportement). Une classe décrit un type d'objets ; chaque objet, créé avec new, a ses propres valeurs. Cette organisation rend le code plus facile à comprendre, à réutiliser et à faire évoluer que des variables et des fonctions dispersées.

Quels sont les quatre piliers de la POO ?

L'encapsulation (un objet protège ses données et n'expose que des accès contrôlés), l'héritage (une classe spécialise une autre classe), le polymorphisme (un même appel produit un comportement adapté à l'objet réel) et l'abstraction (on manipule des concepts, classes abstraites et interfaces, sans dépendre des détails). Certains manuels n'en citent que trois, en rangeant l'abstraction avec l'encapsulation.

Quelle est la différence entre une classe et un objet ?

Une classe est un plan : elle décrit les données et les méthodes communes à un type d'objets, sans contenir de valeurs particulières. Un objet, ou instance, est un exemplaire créé à partir de ce plan avec new, qui a ses propres valeurs : la classe Ticket est écrite une fois, et chaque demande d'assistance est un objet Ticket différent.

Quelle est la différence entre une classe abstraite et une interface ?

Une classe abstraite est une classe de base qu'on n'instancie pas : elle peut contenir un état, des constructeurs et du code, et une classe n'en a qu'une seule comme mère. Une interface est un contrat, une liste de méthodes à fournir, qu'une classe peut implémenter en plus de son héritage, autant de fois qu'elle veut. On choisit la classe abstraite pour une famille d'objets de même nature, l'interface pour une capacité partagée par des classes sans lien (comparatif détaillé).

Quelle est la différence entre surcharge et redéfinition ?

La surcharge consiste à écrire plusieurs méthodes de même nom avec des paramètres différents ; le compilateur choisit la bonne d'après les arguments. La redéfinition consiste, dans une classe fille, à remplacer une méthode virtual de la classe mère par une méthode de même signature marquée override ; la version exécutée dépend de l'objet réel, à l'exécution. La première est du polymorphisme statique, la seconde du polymorphisme dynamique (chapitre 8).

C'est quoi l'encapsulation en C# ?

C'est cacher les données d'un objet en déclarant ses champs private, et n'y donner accès que par des propriétés (get, set) et des méthodes qui vérifient les règles de gestion. Une propriété dont le set refuse une durée négative, ou une liste exposée en lecture seule, garantissent que l'objet reste toujours cohérent (chapitre 3).

Faut-il apprendre la POO en C#, en Java ou en PHP pour le BTS SIO ?

Les concepts sont les mêmes dans les trois langages, et ce sont eux que le BTS évalue. C# a l'avantage d'un typage strict qui signale les erreurs de conception dès la compilation, et il sert aussi pour les applications de bureau WinForms. Les sujets d'E7 sont souvent en Java ou en PHP : avec les tableaux d'équivalences du chapitre 16, tu les lis sans difficulté une fois la POO comprise en C#.

Quelle version de C# et de .NET utiliser en 2026 ?

.NET 10, sorti en novembre 2025 avec C# 14, est la version à support long (LTS), maintenue jusqu'en novembre 2028 : c'est celle à installer pour tes projets du BTS. .NET 11 et C# 15 sortent en novembre 2026, avec un support court (STS) de deux ans : rien de ce cours ne change avec eux. Les versions 8 et 9 ne sont plus maintenues après le 10 novembre 2026 (installer .NET 10).

C'est quoi les principes SOLID ?

Ce sont cinq principes de conception orientée objet : responsabilité unique (une classe, une raison de changer), ouvert/fermé (étendre sans modifier), substitution de Liskov (une classe fille doit pouvoir remplacer sa mère), ségrégation des interfaces (des interfaces petites et ciblées) et inversion des dépendances (dépendre d'abstractions, pas de classes techniques). Ils rendent le code plus facile à tester et à faire évoluer (chapitre 12).

Comment la POO est-elle évaluée au BTS SIO SLAM ?

À l'E6, épreuve orale d'option, tu présentes les classes de tes réalisations et tu fais évoluer ton propre code pendant une heure : ajouter une règle, une classe, un test. À l'écrit E7, « Cybersécurité des services informatiques », tu lis, complètes ou corriges des classes métier fournies dans le dossier documentaire, souvent en Java ou en PHP. Jusqu'à la session 2024, cet écrit s'appelait E6 (U6) ; les exercices du chapitre 16 reprennent ces deux formats.