Cours No8 La programmation à l’aide d’objets
Contenu 1. Terminologie objet 2. Classe vs Objet 3. Création d’une classe 4. Déclaration d’une variable objet 5. Instanciation d’une classe 6. Création d’une collection d’objets
Classe Une classe est une sorte de gabarit (moule ou plan) à partir duquel les objets sont construits. Une classe comporte: des propriétés et des méthodes. Les propriétés correspondent à des variables et mémorisent l’état d’un objet à un instant donné. Elles peuvent être privées ou publiques. Toutefois, le principe de l’encapsulation requiert l’utilisation de propriétées privées. Les méthodes correspodent à des procédures Sub et function et décrivent les opérations que l’on peut effectuer sur l’objet. Les méthodes peuvent être publiques ou privées
Classe suite Un jeu de propriétés et de méthodes constitue une interface. En POOPE, les classes ont aussi des événements. Qu’une classe peut déclencher lorsque certaines conditions se trouvent réunis. Le programmeur peut alors prescrire l’action à entreprendre lorsque l’événement en question se produira.
Définir une classe On inserre un module de classe
Exercice Définir une classe Cproduit Utiliser cette classe dans un programme
Définir les propriétés Les propriétés sont définies en tant que variables locales privées Dim mPrix As Currency La procédure propriété Let permet d’affecter une valeur à une propriété La procédure propriété Get permet de lire l’état d’une propriété
Les propriétés suite Let permet de valider les propriétés Public Property Let Prix (NouvPrix As Currency) If (NouvPrix 100) Then mPrix = 0 MsgBox “Prix incorrect, mise à 0”,,”Erreuer” Else mPrix = NouvPrix EndIf Un Let sans Get est une propriété en écriture seulement. Un Get sans Let est une propriété en lecture seulement
Les propriétés suite Let permet de valider les propriétés Il est préférable de générer une erreur que l’interface utilisera
Définir un objet Dim X As New Nom_Classe L’objet est créé en mémoire lorsqu’on y réfère pour la première fois dans le code. Dim X As Nom_Classe Set X = New Nom_Classe Set X = Y, où Y est déjà défini.
Classe avec événement Dans la partie déclarative de la classe Public Event Nom_de_l_Événement Déclencher l’événement Quelque part dans l’une des méthodes ou propriétés Let ou Get, If.... Then RaiseEvent Nom_de_l_Événement End if
Coder l’événement Déclarer une variable objet ayant un événement Dim WithEvents mProd as CProduit2 Instancier la variable Set mProd = new CProduit2 Coder l’événement Sub NomObjet_Nom_de_l_Événement Code pour réagir à l’événement
Explorateur d’objets L’explorateur d’objets donne accès aux propriétés, méthodes et événements des objets prédéfinis, de même qu’aux objets créés par l’usager
Collection d’objets On peut définir un tableau d’objets Dim Produits(1..100) As Cproduit Mieux vaut utiliser une collection qui comporte des propriétés et méthodes pour l’insertion, la suppression, l’accès et le dénombrement. Produits As New Collection
Collection suite Propriétés et méthodes d’un objet collection Add méthode Ajoute des éléments à la collection Count propriété Renvoie le nb. d’éléments dans la collection, en lecture seulement Item méthode Renvoie un élément, par index ou clé Remove méthode Supprime un élément de la collection, par index ou clé
Collection suite Il y a des collections prédéfinies dans chaque projet Forms: la collection des formes d’un projet Controls: la collection des contrôles d’une feuille Dim Ctrl As Control For Each Ctrl In Controls If TypeOf Ctrl = TextBox Then Ctrl.Text = “” End if Next
Collection suite Il est recommandé de construire ses propres collections, afin d’en contrôler le contenu. Il s’agit de construire une classe collection Il faut définir des méthodes Ajouter (Add), Retirer (Remove), Itème (Item) et une propriété Cardinalité (Count)
Initialize et Terminate Sub Class_Initialize code à faire lors de la naissance d’un objet End sub Sub Class_Terminate code à faire lors de la mort d’un objet End sub