Académique Documents
Professionnel Documents
Culture Documents
Chapitre 2: La programmation
orientée objet avec VB.Net
Cours réalisé par:
C.Bayoudhi, M.Ennigrou 2
Support de cours VB.NET
Notion de classe
C.Bayoudhi, M.Ennigrou 3
Support de cours VB.NET
Création d’une classe
• Pour créer une classe il faut tout d’abord entrer
dans le menu Ajouter une classe
Menu Projet puis Ajouter une Classe
C.Bayoudhi, M.Ennigrou 4
Support de cours VB.NET
Déclaration d’une classe
C.Bayoudhi, M.Ennigrou 5
Support de cours VB.NET
Déclaration d’une classe
C.Bayoudhi, M.Ennigrou 6
Support de cours VB.NET
Exemple 1
C.Bayoudhi, M.Ennigrou 7
Support de cours VB.NET
Mot clé – Shared
• Les variables et méthodes sont accessibles via une instance. Il est possible
de créer des variables et des méthodes partagées sans avoir à créer des
instances.
• Pour cela, il faut utiliser le mot clé Shared avant le nom de la variable.
Public Class Personne
Private leNom As String
Private lePrenom As String
Private laDate As Date
Public Shared nbInstances
Sub New()
leNom=″″
lePrenom=″″
laDate=#1/1/1901#
nbInstances=nbInstances+1
End Sub
....
End Class
C.Bayoudhi, M.Ennigrou 8
Support de cours VB.NET
Mot clé – Shared
Exemple
Console.WriteLine(Personne.nbInstances)
Autre méthode
Dim unePersonne as Personne
unePersonne = new Personne(″Jean″,″Dupont″,
#25/12/1978#)
Console.WriteLine(Personne.nbInstances)
C.Bayoudhi, M.Ennigrou 9
Support de cours VB.NET
Mot clé – Shared
Exemple 2
Public Class Medicament
Public Laboratoire As String 'variable d'instance
Public Shared Societe as String 'variable de classe Shared
End Class
C.Bayoudhi, M.Ennigrou 13
Support de cours VB.NET
L’opérateur New
Exemple
C.Bayoudhi, M.Ennigrou 14
Support de cours VB.NET
Notion de Constructeur
• Le constructeur d’une classe est une méthode spéciale qui sera
appelée automatiquement lors de la création d’une instance
• Les attributs d’une classe sont alors initialisés par leurs valeurs
par défaut
C.Bayoudhi, M.Ennigrou 15
Support de cours VB.NET
Notion de Constructeur
• Reprenons notre exemple, on utilise les méthodes déjà écrites
‘constructeur
Public Sub New (ByVal prenomchoisi as string,
ByVal nomchoisi as string,
ByVal datechoisie as date)
Me.leprenom = prenomchoisi
Me.lenom = nomchoisi
Me.ladate_naissance = datechoisie
End Sub
C.Bayoudhi, M.Ennigrou 16
Support de cours VB.NET
Notion de Constructeur
• Une autre manière de faire est d’utiliser une méthode Initialise
Exemple
Class Homme
Private _Nom As String
Private _Prenom As String
Public Sub initialise(ByVal N As String, ByVal P As
String)
Me._nom = N
Me._prenom = P
End Sub
End Class
C.Bayoudhi, M.Ennigrou 17
Support de cours VB.NET
Surcharge
Exemple
Overloads Function calcul_age () As Long
Calcul_age = DateDiff(DateInterval.Year,
date_naiss, Now())
End Function
Overloads Function calcul_age(ByVal jour As Date)
As Long
C.Bayoudhi, M.Ennigrou 18
Calcul_age = DateDiff(DateInteval.Year,
date_naiss, jour)
Surcharge
C.Bayoudhi, M.Ennigrou 19
Héritage (1/3)
• L’héritage permet de réutiliser du code déjà écrit tout en ayant la possibilité de
modifier le fonctionnement de certaines procédures. Le mot clé Inherits indique
la relation d’héritage entre la classe de base et la classe descendante.
Public Class Employe
Inherits Personne
Private leSalaire As Decimal
Private leService As String
Private leStatut As Boolean
Sub New(ByVal N As String, ByVal P As String, ByVal D As Date,_
ByVal S As Decimal, BDecimal, ByVal Se As String, ByVal St As Boolean)
Nom=N
Prenom=P
Date_naiss=D
leSalaire=S
leService=Se
leStatut=St
End Sub
Public ReadOnly Property Salary()
Property Statut() As Boolean
As Decimal
Get
Get
Return leStatut
Return LeSalaire
End Get
End Get
Set(ByVal value As Boolean)
End Property
leStatut = value
...
End Set
End Property
... C.Bayoudhi, M.Ennigrou 20
End Class
Héritage (2/3)
• Dans le constructeur de la classe Employe, nous avons repris
du code existant dans le constructeur de la superclasse
Personne. Afin de ne pas réécrire ce code, il suffit d’utiliser le
mot clé MyBase.
C.Bayoudhi, M.Ennigrou 21
Héritage (3/3)
C.Bayoudhi, M.Ennigrou 22
Héritage (3/3)
C.Bayoudhi, M.Ennigrou 23
Remarque sur l’héritage
C.Bayoudhi, M.Ennigrou 24
Interfaces
• Cette interface nous oblige à créer dans les classes qui l’implémenteront
une fonction «compare” qui compare l’objet courant à l’objet passé en
paramètre. Pour dire qu’une classe implémente une interface on utilise le
mot clé implements.
C.Bayoudhi, M.Ennigrou 25
Exercice1 POO
Créer une méthode en tant que fonction CalculerSalaire() pour afficher la mention "Le salaire
de " suivie du nom du salarié, suivi de " est de ", suivi de la valeur du salaire.
Ajouter à la classe Salarie les méthodes Equals et ToString. La règle d'égalité pour la classe
Salarie peut s'énoncer de la façon suivante : deux salariés sont égaux s'ils ont le même numéro
de matricule et le même nom. ToString doit renvoyer toutes les propriétés séparées par des
virgules.
Créer une classe Commercial en dérivant la classe Salarie. Cette classe aura 2 propriétés
supplémentaires pour calculer la commission :
chiffre d'affaire chiffreAffaire Double
commission en % commission Integer
Créer les deux constructeurs standards de la classe Commercial.
Créer les méthodes d'accès aux propriétés supplémentaires.
Surcharger la méthode CalculerSalaire pour calculer le salaire réel (fixe + commission).
Surcharger les autres méthodes de la classe de base pour lesquelles on jugera nécessaire de
faire ainsi.
Tester les classes Salarie et CommercialC.Bayoudhi, M.Ennigrou 27
Evènement
•Il est possible de définir un évènement pour la classe
•Deux étapes sont alors nécessaires
1. Déclarer l’évènement avec le mot clé Event
2. Utiliser l’instruction RaiseEvent pour le déclencher lorsqu’une condition le
nécessite
Exemple
Public Class Class1
Private _mTexte As String
Public Event TextChange(ByVal UserName As String)
Public Property Texte()
Get
Return _mTexte Déclare l’évènement
End Get
Set(ByVal Value)
If Value <> _mTexte Then
RaiseEvent TextChange("hello« ) _mTexte = Value
End Set
End Property Déclenche l’évènement
End Class
C.Bayoudhi, M.Ennigrou 28