5

Click here to load reader

Introduction à la Programmation Orientée Objet (PASCAL)

Embed Size (px)

DESCRIPTION

Introduction à la Programmation Orientée Objet (PASCAL)

Citation preview

Page 1: Introduction à la Programmation Orientée Objet (PASCAL)

ECOLE VEGA IP Initiation à la programmation orientée objet en Pascal

Enseignant : N. BOUCHAMA

Nadir Bouchama [email protected]

Résumé Ce chapitre est consacré à quelques rappels sur le langage de programmation PASCAL. On y abordera également quelques notions fondamentales de la POO (Programmation Orientée Objets). Ce support de cours ne se veut nullement exhaustif.

I. Définitions élémentaires

� Programme : texte écrit dans un langage informatique, comportant dans notre cas des instructions structurées (organisées en structures). Il est destiné à être « converti » par Delphi en un logiciel utilisable sous Windows.

� Développer en Delphi : écrire des programmes en utilisant le langage Pascal. Par abus, on confond le langage (Pascal) et le logiciel (Delphi) qui le gère, et on parle de développer, plutôt que de programmer.

� Application : Logiciel fonctionnant sous Windows. � Projet : c'est la base d'une application. Sous Delphi, pour créer une application, on constitue d'abord un

projet, constitué de divers morceaux (notion importante vue plus loin). � Code source : morceau de programme, texte d'un programme écrit en Pascal � Interface (utilisateur) : partie d'un logiciel qui est visible par l'utilisateur, à l'opposé du code source,

invisible à l'utilisateur. � Fiche : fenêtre à l'état non compilé. Les fiches sont l’équivalent sous Delphi des fenêtres sous

Windows.

II. Rappels sur le langage de programmation PASCAL Historique

Le langage PASCAL a été créé en 1969 à l'école polytechnique de ZURICH par Niklaus WIRTH. Il a été conçu pour permettre d'enseigner la programmation comme une science. Ce langage est à la base d'une nouvelle méthode de programmation : la programmation structurée, et c'est pour cette raison que ce langage a eu un tel succès dans l'enseignement.

Structure générale d’un programme en Pascal :

Program Nom_du_programme; Uses {unités} Const {Déclaration de constantes} Type {Déclaration de types personnalisés} Var {Déclaration de variables} {Procédures et fonctions} Begin {Bloc principal du programme} End.

Chapitre I : Rappels et Notions Fondamentales

Page 2: Introduction à la Programmation Orientée Objet (PASCAL)

ECOLE VEGA IP Initiation à la programmation orientée objet en Pascal

Enseignant : N. BOUCHAMA

Les procédures et les fonctions Les enregistrements Un type de structure de données très utile est le type de données enregistrement. Tout comme le tableau, l'enregistrement permet de stocker un ensemble d'informations se rapportant à un même sujet. Cependant, les éléments d'un enregistrement ne sont pas obligatoirement tous du même type. Les enregistrements sont parfaits pour stocker des informations concernant des gens ou des lieux. Exemple d’enregistrement : Pascal Objet : Le Pascal Objet (Object Pascal) est un langage compilé de haut niveau à types stricts qui gère la conception structurée et orientée objet. Ces qualités sont la lisibilité du code, une compilation rapide et l’utilisation d’unités multiples permettant une programmation modulaire. Le Pascal Objet propose des caractéristiques spéciales qui gèrent le modèle de composant et l’environnement RAD de Delphi. Dans la plupart des cas, les descriptions et exemples de ce manuel supposent que vous utilisez le Pascal Objet pour développer des applications Delphi. III. Programmation Orientée Objets

Principe :

La programmation orientée objet (POO) consiste à modéliser informatiquement un ensemble d'éléments d'une partie du monde réel (que l'on appelle domaine) en un ensemble d'entités informatiques. Ces entités informatiques sont appelées objets. Il s'agit de données informatiques regroupant les principales caractéristiques des éléments du monde réel (taille, couleur, ...).

Un objet est caractérisé par plusieurs notions:

1. Les attributs: Il s'agit des données caractérisant l'objet. Ce sont des variables stockant des informations d'état de l'objet

2. Les méthodes (appelées parfois fonctions membres): Les méthodes d'un objet caractérisent son comportement, c'est-à-dire l'ensemble des actions (appelées opérations) que l'objet est à même de réaliser. Ces opérations permettent de faire réagir l'objet aux sollicitations extérieures (ou d'agir sur les autres objets). De plus, les opérations sont étroitement liées aux attributs, car leurs actions peuvent dépendre des valeurs des attributs, ou bien les modifier

Function NomF({paramètres}): {type}; Type {Déclaration de types locaux} Const {Déclaration de constantes locales} Var {Déclaration de variables locales} {procédures | fonctions locales} Begin {Corps de la fonction} NomF:={valeur de retour}; End ;

Procedure NomP({paramètres}); Type {Déclaration de types locaux} Const {Déclaration de constantes locales} Var {Déclaration de variables locales} {procédures | fonctions locales} Begin {Corps de la procédure} End ;

Type Personne = record //champs nom: string; prenom: string; date_naissance: string; End;

Page 3: Introduction à la Programmation Orientée Objet (PASCAL)

ECOLE VEGA IP Initiation à la programmation orientée objet en Pascal

Enseignant : N. BOUCHAMA

3. L'identité: L'objet possède une identité, qui permet de le distinguer des autres objets, indépendamment de son état. On construit généralement cette identité grâce à un identifiant découlant naturellement du problème (par exemple un produit pourra être repéré par un code, une voiture par un numéro de série, ...)

Objectifs de la POO

� Lier les données et les fonctions qui les manipulent afin d’éviter des accès aux données par des fonctions non autorisées.

� Obtenir une meilleure abstraction en cachant l’implémentation des techniques utilisées et en ne rendant visible que des points d’entrée. Ainsi, si l’implémentation change, le code utilisateur n’est pas affecté.

� Réutiliser l’existant dans un souci de productivité. � Traiter les erreurs localement au niveau des objets sans que cela ne perturbe les autres parties du

programme. � Faciliter la maintenance.

Notions élémentaires de la POO : Objet : Un objet est la représentation informatique d'un objet dans son sens courant : il forme un tout, avec des caractéristiques propres et un comportement. Il est manipulable. Un objet, au sens informatique, est une entité contenant à la fois des données modifiables et des procédures qui agissent sur ces données. En programmation orientée objet, les données de l'objet - appelées propriétés- ne sont accessibles qu'au moyen des procédures contenues dans l'objet. Celles-ci constituent donc l'interface de l'objet avec l'extérieur. On les appelle des méthodes. On n’a pas besoin de connaître les mécanismes internes de l'objet : seule la connaissance des méthodes suffit pour le manipuler. L'objet peut donc être considéré comme une boite noire, réalisant certains comportements prédéfinis.

Classe :

Avec la notion d'objet, il convient d'amener la notion de classe. Cette notion de classe n'est apparue dans le langage Pascal qu'avec l'avènement du langage Delphi et de sa nouvelle approche de la Programmation Orientée Objet. Elle est totalement absente du Pascal standard.

Une classe rassemble deux éléments de la programmation procédurale : 1. Les champs : Les champs sont à l'objet ce que les variables sont à un programme : ce sont eux qui ont en charge les données à gérer. Tout comme n'importe quelle autre variable, un champ peut posséder un type quelconque défini au préalable : nombre, caractère, ..., ou même un type objet. 2. Les méthodes : Les méthodes sont les éléments d'un objet qui servent d'interface entre les données et le programme. Sous ce nom obscur se cachent simplement des procédures ou fonctions destinées à traiter les données.

Représentation d’un objet

Objet = enregistrement + procédures + fonctions

Page 4: Introduction à la Programmation Orientée Objet (PASCAL)

ECOLE VEGA IP Initiation à la programmation orientée objet en Pascal

Enseignant : N. BOUCHAMA

Exemple de déclaration de classe en PASCAL Dans ce qui suit, nous donnons un exemple de déclaration d’une classe en Pascal Objet :

Exemple d’instanciation de classe en PASCAL

Remarquons que pour le méthodes (c'est-à-dire : pour la procédure etat_civil(); et la

fonction calcul_age():byte;), les entêtes ont été déclarés dans l’objet lui-même mais les corps de ces deux méthodes doivent être déclarés en dehors de l’objet). Niveaux de visibilité :

Il existe trois niveaux de visibilité:

• publique: les fonctions de toutes les classes peuvent accéder aux données ou aux méthodes d'une classe définie avec le niveau de visibilité public. Il s'agit du plus bas niveau de protection des données . En Pascal Objet, on utilise le mot clé public.

• protégée: l'accès aux données est réservé aux fonctions des classes héritières, c'est-à-dire par les fonctions membres de la classe ainsi que des classes dérivées. En Pascal Objet, on utilise le mot clé protected

• privée: l'accès aux données est limité aux méthodes de la classe elle-même. Il s'agit du niveau de protection des données le plus élevé. En Pascal objet, on utilise le mit clé private.

Notion d’héritage L'héritage est une des fonctions les plus puissantes d'un langage orienté objet tel que Delphi. Il permet à des classes de descendants de bénéficier des propriétés de leurs ancêtres. Ils héritent des champs, des propriétés, des méthodes et des événements de leur classe ancêtre. En plus de disposer des attributs de ses ancêtres, la classe enfant peut leur ajouter ses propres éléments. Ceci vous permet de prendre une classe comportant la plupart des éléments fondamentaux dont vous avez besoin, et d'ajouter de nouveaux objets qui adaptent cette classe à vos besoins. Exemple d’héritage :

IV. PROGRAMMATION EVENEMENTIELLE Programmer une application graphique devant fonctionner en mode événementiel est un acte très différent que celui consistant à réaliser une application classique selon les règles strictes de la programmation structurée: en effet, en mode événementiel, il faut réaliser des fonctionnalités pratiquement indépendantes les unes des autres sans qu'il soit possible de définir l'ordre dans lequel elles seront exécutées. De plus ce nombre de fonctionnalités est souvent très important et peut être difficile à appréhender dans son ensemble.

Type Personne = class // Partie statique nom: string; prenom: string; date_naissance: string; //Partie dynamique procedure etat_civil(); function calcul_age():byte; End;

Var P1, P2 ,P3 : Personne ;

Type Etudiant= class Filière : string ; Procedure PasserExamen() ; End ;

Page 5: Introduction à la Programmation Orientée Objet (PASCAL)

ECOLE VEGA IP Initiation à la programmation orientée objet en Pascal

Enseignant : N. BOUCHAMA

Il est donc prudent pour un programmeur de commenter ses différentes sources et d'utiliser certaines règles de dénomination des différentes variables pour que l'ensemble du projet ne devienne pas difficile, voire impossible, à gérer. Il faut remarquer que, à l'intérieur de chaque fonctionnalité, la programmation structurée reprend ses droits même si l'algorithmique de chaque fonctionnalité est en général relativement simple.

Liens très recommandés: www.developpez.com www.commentcamarche.com www.phidels.com www.borland.com www.delphi32.com