Module 6 : Programmation Orientée Objet (POO)
en Pascal**
Module 6 : Programmation Orientée Objet (POO) en Pascal
La programmation orientée objet (POO) est un paradigme de programmation qui permet de structurer le
code sous forme d'objets, en mettant l'accent sur la réutilisabilité, l'encapsulation, l'héritage, et le
polymorphisme. Ce module se concentre sur l'utilisation de POO avec le langage Pascal.
1. Concepts de POO en Pascal
1.1 Déclaration de types en Pascal (records, classes)
En Pascal, les objets sont souvent représentés par des records et des classes.
Type record : Structures simples.
Type
TPerson = Record
Nom: String[50];
Âge: Integer;
End;
Classe : Les classes encapsulent les données et les méthodes associées.
Type
TPerson = Class
Private
Nom: String[50];
Âge: Integer;
Public
Constructor Create(NomPerson: String; ÂgePerson: Integer);
Procedure Afficher;
End;
1.2 Constructeurs et destructeurs
Constructeur : Initialise un objet.
Destructeur : Libère les ressources allouées.
Constructor [Link](NomPerson: String; ÂgePerson: Integer);
Begin
Nom := NomPerson;
Âge := ÂgePerson;
End;
Procedure [Link];
Begin
WriteLn('Nom: ', Nom);
WriteLn('Âge: ', Âge);
End;
2. Encapsulation et propriétés
L’encapsulation permet de cacher les détails d’un objet et de n’exposer que les méthodes nécessaires.
2.1 Propriétés
Les propriétés permettent d’accéder ou de modifier les attributs d'un objet.
Exemple : définition de propriétés pour une classe Person :
Type
TPerson = Class
Private
FNom: String;
FÂge: Integer;
Public
Property Nom: String Read FNom Write FNom;
Property Âge: Integer Read FÂge Write FÂge;
Constructor Create(NomPerson: String; ÂgePerson: Integer);
Procedure Afficher;
End;
3. Héritage et polymorphisme
3.1 Héritage
Permet de créer une classe dérivée à partir d’une classe de base et d’hériter de ses propriétés et
méthodes.
Exemple : une classe Employé qui hérite de Person :
Type
TEmployé = Class(TPerson)
Salaires: Double;
Constructor Create(NomPerson: String; ÂgePerson: Integer;
SalairePerson: Double);
Procedure Afficher;
End;
Implémentation du constructeur :
Constructor TEmployé.Create(NomPerson: String; ÂgePerson: Integer;
SalairePerson: Double);
Begin
Inherited Create(NomPerson, ÂgePerson);
Salaires := SalairePerson;
End;
Procedure TEmployé.Afficher;
Begin
Inherited Afficher;
WriteLn('Salaire: ', Salaires:0:2);
End;
3.2 Polymorphisme
Permet de définir des méthodes spécifiques qui s'adaptent en fonction du type d'objet.
Exemple :
Procedure AfficherInfo(P: TPerson);
Begin
[Link]; { Appelle la méthode appropriée }
End;
4. Modules et utilisation de POO
On peut organiser le code par modules pour mieux gérer les unités logiques.
Unit PersonModule;
Interface
Type
TPerson = Class
Private
FNom: String;
FÂge: Integer;
Public
Constructor Create(NomPerson: String; ÂgePerson: Integer);
Procedure Afficher;
End;
Implementation
Constructor [Link](NomPerson: String; ÂgePerson: Integer);
Begin
FNom := NomPerson;
FÂge := ÂgePerson;
End;
Procedure [Link];
Begin
WriteLn('Nom: ', FNom);
WriteLn('Âge: ', FÂge);
End;
End.
5. Exemples pratiques de POO
5.1 Gestion d’un système d’emplois (Employés)
Définition de classes Person et Employee en utilisant l’héritage.
Program Main;
Uses
PersonModule;
Var
P: TPerson;
E: TEmployé;
Begin
P := [Link]('Ahmed', 30);
[Link];
E := TEmployé.Create('Mohamed', 40, 5000.0);
[Link];
Dispose(P); { Libération de la mémoire }
Dispose(E); { Libération de la mémoire }
End.
6. Avantages de POO avec Pascal
Réutilisabilité : Les classes et les objets permettent de réutiliser le code de manière modulaire.
Encapsulation : Permet de protéger les détails internes et d’exposer uniquement ce qui est
nécessaire.
Héritage et polymorphisme : Simplifie la gestion et l’évolution du code.
Modules et organisation : Améliore la lisibilité et la maintenance du code.
Ce module a couvert les bases de la programmation orientée objet en Pascal, y compris la création et
l’utilisation de classes, l’héritage, et le polymorphisme. Si vous avez des questions spécifiques ou
souhaitez approfondir un concept particulier, je suis à votre disposition !