Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. C# 10 et Visual Studio Code
  3. Programmation orientée objet
Extrait - C# 10 et Visual Studio Code Les fondamentaux du langage
Extraits du livre
C# 10 et Visual Studio Code Les fondamentaux du langage
2 avis
Revenir à la page d'achat du livre

Programmation orientée objet

Principes de la programmation orientée objet

La programmation orientée objet (POO) est un paradigme très répandu en développement logiciel. Il vient compléter un panorama déjà riche du paradigme procédural ainsi que du paradigme fonctionnel.

La POO est une forme de conception de code visant à représenter les données et les actions comme faisant partie de classes, elles-mêmes devenant des objets lors de leur création en mémoire. Cette notion a été rapidement présentée dans le chapitre précédent, il est maintenant temps de comprendre son fonctionnement plus en détail.

1. Qu’est-ce qu’une classe ?

Une classe est un élément du système que forme votre application. Une classe contient deux types d’élément de code : des données et des méthodes (actions). Il faut voir la classe comme étant une boîte dans laquelle on peut ranger ces deux types d’éléments. Pour faire un parallèle avec la vie réelle, on peut facilement comprendre que la définition d’une classe s’applique à un objet comme un ordinateur, par exemple. Ce dernier dispose de méthodes (allumer, éteindre...) ainsi que des propriétés (nombre d’écrans, quantité de RAM...).

Conceptuellement, une classe n’est qu’une définition. Une fois que vous avez statué sur ce qu’elle doit contenir ainsi que ses méthodes, il convient de la créer. Cette action s’appelle l’instanciation. À la suite de cette opération, on obtient une instance en mémoire d’un objet.

Pour tenter une comparaison, prenons l’exemple d’une usine de fabrication d’objets en bois. Afin de pouvoir créer un objet, il faut un plan (la classe). Grâce à ce dernier, la machine peut découper et assembler les divers éléments (données et méthodes) afin de créer une nouvelle instance (instanciation).

En C#, la déclaration d’une classe se fait grâce au mot-clé class. Il y a quelques spécificités possibles, notamment la portée, que l’on étudiera juste après, dans...

Concepts avancés

Après avoir vu les concepts de base de la POO, il est temps de découvrir quelques concepts avancés.

1. L’héritage avancé

Lorsque nous avons abordé la question de l’héritage, nous l’avons fait par le prisme d’une classe Y qui hérite d’une autre classe X, ces deux classes pouvant être créées.

a. Méthodes virtuelles

Lorsqu’une classe hérite d’une autre, elle profite naturellement des méthodes et des données présentes dans la classe mère. Néanmoins, il peut arriver, pour certains besoins, que la classe fille doive redéfinir certaines méthodes. Pour que cela soit possible, la classe mère doit déclarer ces méthodes comme étant virtuelles, ce qui signifie qu’elles définissent un fonctionnement concret mais qu’il reste possible de surcharger ce fonctionnement. Deux mots-clés entrent en jeu dans ce fonctionnement :

  • Au niveau de la classe mère, il est nécessaire d’ajouter le mot-clé virtual avant le nom de la méthode.

  • Au niveau de la classe fille, il est nécessaire d’ajouter le mot-clé override avant le nom de la méthode que l’on souhaite remplacer.

Concrètement, imaginons que notre classe Ordinateur dispose d’une méthode Allumer, qui affiche "Allumage en cours...", mais que l’on souhaite afficher "Votre Mac démarre..." dans le cas de la classe Mac. Il y a plusieurs façons de répondre à ce besoin, mais une solution possible est de remplacer le contenu de la méthode Allumer :

public class Ordinateur 
{ 
    public virtual void Allumer() 
    { 
        Console.WriteLine("Allumage en cours..."); 
    } 
} 
 
public class Mac : Ordinateur 
{ 
    public override void Allumer() 
    { 
        Console.WriteLine("Votre Mac démarre..."); 
    } 
} 

Lorsqu’on appelle la méthode Allumer d’un objet...

Exercice

Maintenant que vous avez acquis les notions du développement orienté objet, il est temps de passer à la pratique sous forme d’exercice.

1. Énoncé

Le but de celui-ci est de pouvoir gérer un garage. Le garage réalise plusieurs opérations sur des voitures :

  • Repeindre une voiture pour changer sa couleur.

  • Réparer la voiture.

  • Faire l’entretien de la voiture et mettre à jour la date du dernier entretien.

Le garage s’occupe également des camions, mais uniquement pour les réparer.

Exception faite d’affecter ou de lire d’éventuelles propriétés, les actions ne feront rien d’autre qu’afficher sur la console, grâce à la méthode WriteLine, l’action en question.

Une voiture possède une marque, une couleur, une date de révision et un indicateur de bon fonctionnement.

Le petit scénario à implémenter est le suivant :

  • Créer un garage.

  • Créer deux voitures (une Peugeot bleue et une Ferrari rouge) et un camion.

  • Réparer la Peugeot et le camion et entretenir la Ferrari.

  • Repeindre la Peugeot en vert.

2. Corrigé

À la simple lecture de l’énoncé, il existe, comme bien souvent, de multiples façons de bien réussir cet exercice. L’approche, ici, est de mettre en pratique ce qui a été...