Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
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. Algorithmique - Techniques fondamentales de programmation
  3. Techniques fondamentales de programmation
Extrait - Algorithmique - Techniques fondamentales de programmation exemples en C# - (nombreux exercices corrigés) [BTS - DUT informatique]
Extraits du livre
Algorithmique - Techniques fondamentales de programmation exemples en C# - (nombreux exercices corrigés) [BTS - DUT informatique]
1 avis
Revenir à la page d'achat du livre

Une approche de l'objet

Principe de l’objet, une notion évidente

1. Avant de continuer

Vous voici dans le dernier chapitre de ce livre. Si votre objectif était d’apprendre à programmer dans des langages procéduraux ou fonctionnels, c’est-à-dire basés sur l’utilisation de sous-programmes tels que présentés ici, vous pourriez vous arrêter là. En effet, dès à présent vous disposez de tous les éléments indispensables pour programmer en langage C ou en Pascal.

Cependant, il serait dommage de ne pas continuer, ceci même si vous n’aurez pas tout de suite à programmer en objet. La programmation objet est depuis le début des années 1990 non seulement un classique, mais fait partie de la culture informatique. Un langage comme le C++, évolution du langage C, et même d’autres comme Delphi dérivé du Pascal, Visual Basic dérivé du BASIC, ainsi que la plupart des langages de macros sous Ms Office ou OpenOffice.org, ou encore les langages de certains gestionnaires de bases de données, sont des langages objet.

C#, que vous étudiez dans la plupart des exemples de ce livre, est un langage objet très répandu aujourd’hui, puisqu’on le retrouve dans des smartphones, des tablettes, des applications grand public, des serveurs professionnels, certaines cartes électroniques utilisées pour des systèmes embarqués, etc.

D’autres langages, comme le PHP ou Python, se déclinent aussi bien en fonctionnel qu’en objet, alors que d’autres, comme C#, sont uniquement objets.

Ne pas comprendre l’objet, c’est risquer de se couper de beaucoup de produits, beaucoup de fonctionnalités, et souvent aussi d’une plus grande simplicité dans le développement de certains traitements.

2. Rappels sur la programmation procédurale

Les procédures ou fonctions reçoivent des données en arguments (paramètres) et les retournent modifiées ou non par le même chemin ou par valeur retour de fonction.

Dans un langage procédural (ou fonctionnel), les données sont séparées des programmes qui les utilisent.

a. Les données

Chaque variable dispose d’un type qui indique quelle sorte de valeur elle peut contenir. Ces types sont...

Manipuler les objets

1. Les constructeurs

a. Déclaration

Quand vous instanciez une classe, c’est-à-dire quand vous créez un objet du type de classe donné, il vous faut bien souvent appeler diverses méthodes pour remplir ses attributs avec les bonnes valeurs. Pour reprendre l’exemple de la classe Ecran, nul doute qu’en créant un objet de ce type vous voudrez positionner les attributs type, marque, modèle, etc., aux bonnes valeurs. La solution actuelle consiste à appeler explicitement les méthodes prévues à cet effet : modif_type(), modif_marque(), modif_modèle(), et ainsi de suite.

Il existe un moyen plus efficace et implicite de positionner les bonnes valeurs des attributs (et d’effectuer toute autre opération nécessaire) dès l’instanciation. Ce moyen, c’est le constructeur.

Le constructeur est une méthode particulière qui est appelée automatiquement dès que vous créez un objet sans que vous ayez à le préciser, que se soit par déclaration ou allocation dynamique (via un pointeur). Dans cette méthode, libre à vous de faire ce que vous voulez, mais dans un grand nombre de cas son rôle sera de donner aux attributs leurs bonnes valeurs initiales, ou des valeurs par défaut.

Un constructeur doit respecter les deux propriétés suivantes :

  • Il porte le même nom que la classe.

  • Il ne retourne pas de valeur.

Via le polymorphisme paramétrique (qu’on appelle aussi la surcharge des méthodes) vous pouvez créer autant de constructeurs que vous le souhaitez, un par cas selon les paramètres passés. En algorithmique vous rajouterez le mot-clé Constructeur devant le nom de la méthode en remplacement de Procédure ou Fonction. Ce n’est pas forcément obligatoire car aucune autre méthode ne doit avoir le même nom que la classe.

b. Appel implicite

La classe Ecran se voit complétée de deux constructeurs : le premier ne reçoit aucun paramètre et sera utilisé lorsque l’objet ne reçoit aucune valeur lors de sa création. Le second prend trois paramètres (type, marque, modèle) pour les initialiser à la création de l’objet.

Un constructeur qui ne reçoit aucun...

L’objet en C#

1. Les langages objet

Les deux parties précédentes de ce chapitre vous ont présenté ce qu’est la programmation objet. Il existe plusieurs langages orientés objet. On parle de Programmation orientée objet (POO). Les prémices de la programmation objet sont anciennes (pour de l’informatique) : 1967 avec le langage Simula, puis Smalltalk. L’âge d’or débute au début des années 1980, avec tout d’abord l’Objective C (encore très utilisé notamment dans le développement de Mac OS et de ses outils), puis le "C with Classes » en 1983, qui deviendra le C++, puis Eiffel, puis le Lisp Objet, et ainsi de suite.

Les années 1990 ont vu l’explosion de l’objet à toutes les sauces pour le meilleur et pour le pire, et pas uniquement dans les langages. Ainsi des bases de données objet sont apparues. D’anciens langages comme le Pascal, le Basic ou même le COBOL ont évolué vers l’objet : Delphi, Visual Basic, Cobol Objet, etc. Même les langages macros propres à des suites bureautiques (Ms Office, OpenOffice.org puis LibreOffice.org) ou de base de données (Access, Paradox) se targuent d’être des langages objet. Le langage JavaScript, de manipulation de pages web côté client, est un langage objet basé sur le modèle hiérarchique de la page. Si la définition de l’objet correspond à peu près à ce qui vous a été présenté depuis le début de ce chapitre, les puristes doivent dans certains cas bien rire.

La suite vous présente des notions d’objet en C#. Elle se limitera aux notions que vous avez rencontrées depuis le début de ce chapitre. Pour un meilleur apprentissage des fonctionnalités objet avancées de C#, les Éditions ENI proposent notamment l’ouvrage C# 6 et Visual Studio 2015. D’autres ouvrages ciblant plus spécifiquement le développement Web ou Windows Store avec C# sont également disponibles.

2. Déclaration des classes et objets

Inconsciemment ou non, vous utilisez l’objet dans C# depuis les premiers exemples de ce livre. Dans le premier chapitre, il vous a été demandé de ne pas vous soucier...

Exercices

Exercice 1

Écrire une classe permettant de décrire un livre et de positionner les valeurs associées. Donner un exemple d’utilisation en C#.

Exercice 2

Dans le chapitre précédent, les listes chaînées ont été abordées. Comment modifier la structure element pour la transformer en classe et lui ajouter des méthodes de gestion permettant de lister les éléments un par un, dans les deux sens, d’ajouter un élément, d’en supprimer et de retourner au premier ?

Exercice 3

Soient les objets suivants :

  • Animal

  • Mammifère

  • Ovipare

  • Poule

  • Chat

  • Ornithorynque

Décrire les relations entre les différents objets. Le diagramme associé s’appelle le diagramme de classes.

Donner un exemple de description algorithmique des classes associées (uniquement la déclaration Classe XXX).

Est-il possible d’implémenter ces objets en C# ?