0% ont trouvé ce document utile (0 vote)
11 vues6 pages

POO en Pascal : Concepts et Applications

module 3-Pascal

Transféré par

eUser456
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues6 pages

POO en Pascal : Concepts et Applications

module 3-Pascal

Transféré par

eUser456
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Module 3 : Programmation orientée objet en

Pascal (POO)**

Module 3 : Programmation orientée objet en Pascal (POO)

Dans ce module, nous abordons la Programmation Orientée Objet (POO) en Pascal, principalement
avec l'extension Object Pascal. Ce paradigme permet de concevoir des applications plus modulaires,
extensibles et robustes.

1. Introduction à la POO

1.1 Concepts clés de la POO

Classes : Structures qui regroupent des données (attributs) et des méthodes (fonctions/procédures
associées).
Objets : Instances d'une classe.

Encapsulation : Contrôle d'accès aux données via des modificateurs comme private , public ,
etc.
Héritage : Capacité d'une classe à hériter des propriétés et méthodes d'une autre classe.

Polymorphisme : Possibilité pour une méthode d'agir différemment selon le contexte.

2. Déclaration et utilisation des classes

2.1 Déclaration d’une classe

Exemple de base avec une classe Personne :

Type
Personne = Class
Private
Nom: String;
Âge: Integer;
Public
Procedure AfficherInfo;
Procedure Initialiser(n: String; a: Integer);
End;

2.2 Implémentation des méthodes

Implémentation dans le bloc Implementation :

Procedure [Link](n: String; a: Integer);


Begin
Nom := n;
Âge := a;
End;

Procedure [Link];
Begin
WriteLn('Nom : ', Nom);
WriteLn('Âge : ', Âge);
End;

2.3 Utilisation dans le programme principal

Exemple d'instanciation et d'utilisation :

Var
P1: Personne;
Begin
P1 := [Link];
[Link]('Ali', 25);
[Link];
[Link];
End.

3. Encapsulation et modificateurs d’accès

3.1 Niveaux d'accès

Public : Accessible de partout.


Private : Accessible uniquement au sein de la classe.
Protected : Accessible par la classe et ses descendants.

3.2 Exemple avec encapsulation

Utilisation de Private pour les attributs et de méthodes pour y accéder :

Type
Personne = Class
Private
Nom: String;
Public
Procedure SetNom(n: String);
Function GetNom: String;
End;

Procedure [Link](n: String);


Begin
Nom := n;
End;
Function [Link]: String;
Begin
GetNom := Nom;
End;

4. Héritage et polymorphisme

4.1 Héritage

Déclaration d'une classe fille qui hérite d'une classe mère :

Type
Personne = Class
Public
Nom: String;
Procedure AfficherInfo; Virtual;
End;

Étudiant = Class(Personne)
Public
Classe: String;
Procedure AfficherInfo; Override;
End;

4.2 Polymorphisme

Exemple d'utilisation du polymorphisme :

Procedure [Link];
Begin
WriteLn('Nom : ', Nom);
End;

Procedure É[Link];
Begin
Inherited AfficherInfo;
WriteLn('Classe : ', Classe);
End;

Var
P: Personne;
E: Étudiant;
Begin
P := [Link];
[Link] := 'Ali';
[Link];

E := É[Link];
[Link] := 'Fatima';
[Link] := 'Terminale';
[Link];

P := E; { Polymorphisme }
[Link];
[Link];
[Link];
End.

5. Gestion avancée des objets

5.1 Constructeurs et destructeurs

Constructeur : Méthode spéciale pour initialiser un objet.


Destructeur : Méthode spéciale pour libérer les ressources.
Exemple :

Type
Personne = Class
Public
Constructor Create(n: String);
Destructor Destroy; Override;
End;

Constructor [Link](n: String);


Begin
Nom := n;
WriteLn('Personne créée : ', Nom);
End;

Destructor [Link];
Begin
WriteLn('Personne détruite : ', Nom);
Inherited Destroy;
End;

Var
P: Personne;
Begin
P := [Link]('Ali');
[Link];
End.

5.2 Gestion dynamique de la mémoire

Exemple : Création d'une liste d'objets :

Var
Étudiants: Array of Personne;
i: Integer;
Begin
SetLength(Étudiants, 3);
For i := 0 To 2 Do
Étudiants[i] := [Link]('Étudiant ' + IntToStr(i + 1));

For i := 0 To 2 Do
Étudiants[i].AfficherInfo;

For i := 0 To 2 Do
Étudiants[i].Free;
End.

6. Applications pratiques de la POO en Pascal

6.1 Gestion d'une bibliothèque

Définition des classes :

Type
Livre = Class
Public
Titre: String;
Auteur: String;
Procedure AfficherInfo;
End;

Programme principal :

Var
L1: Livre;
Begin
L1 := [Link];
[Link] := 'Pascal Programming';
[Link] := 'John Doe';
[Link];
[Link];
End.
Conclusion

Ce module couvre les bases de la programmation orientée objet en Pascal, offrant une approche
puissante pour organiser et développer des programmes complexes. Si vous avez besoin d'exercices
pratiques ou de projets spécifiques, faites-le-moi savoir !

Vous aimerez peut-être aussi