Cours VB.NET et la programmation objet, tutoriel & guide de travaux pratiques bases de données en pdf.
T.P. N° 2 – ENCAPSULATION PROTECTION ET ACCES AUX DONNEES MEMBRES
OBJECTIFS
• Protection des propriétés (données membres).
• Fonctions de type Get et Set, d’accès aux propriétés.
CE QU’IL FAUT SAVOIR
Protection des propriétés
En Programmation Orientée Objet, on évite d’accéderdirectement aux propriétés par l’opérateur. . En effet, cette possibilité ne correspond pas auconcept d’encapsulation. Certains langages l’interdisent carrément. En C#, c’est le programmeur qui choisit si une donnée membre ou une fonction membre est accessible directement ou pas. Par défaut, VB.NET toutes les propriétés et méthodes sont accessibles directement. Il faut donc préciser explicitement les conditions d’accès pour chaque propriété et chaque méthode. Pour cela, il existe trois mots-clés :
• public – Après ce mot clé, toutes les données ou fonctions membres sont accessibles.
• private – Après ce mot clé, toutes les données ou fonctions membres sont verrouillées et ne seront pas accessibles dans lesclasses dérivées.
• protected – Après ce mot clé, toutes les données ou fonctions membres sont verrouillées mais sont néanmoins accessibles dansesl classes dérivées.
La distinction entre private et protected n’est visible que dans le cas de la déclaration de nouvelles classes par héritage. Ce oncept sera abordé ultérieurement dans ce cours.
Afin d’implanter correctement le concept d’encapsulation, il convient de verrouiller l’accès aux propriétés et de les déclarerprivate, tout en maintenant l’accès aux méthodes en les déclarant public.
Exemple :
Public Class Client
Private nomClient As String Private caClient As Double
‘ nom du client
‘ chiffre d’affaire client
Public Function AugmenterCA(ByVal montant As Double)
caClient = montant
End Function
End Class
Apprentissage d’un langage de Programmation Orientée Objet : VB.NET Support de formation
Fonctions d’accès aux propriétés
Si les propriétés sont verrouillées, on ne peut plus y avoir accès de l’extérieur de la classe. Il faut donc créer des méthodes dédiées ‘accèsàl aux propriétés pour chacune d’elles. Ces méthodes doivent permettre un accès dans les deux sens :
• pour connaître la valeur de la propriété.Ces méthodes sont appelées méthodes de type « Get. ». La réponse de l’objet, donc la valeur retournéepar la méthodeGet, doit être cette valeur.
Par exemple, pour la propriéténumeroClient, déclaréeInteger, la fonction Get serait déclarée de la façon suivante :
Public Function GetNumeroClient() As Integer
GetNumeroClient = numeroClient
End Function
Cette fonction pourra être utilisée dans la fonctio Main, par exemple :
Dim cli As New Client
Dim numero As Integer
Numero = cli.GetNumeroClient()
• pour modifier la valeur d’une propriété.Ces méthodes sont appelées méthodes Set. Cette méthode ne retourne aucune réponse. Par contre, un paramètre de même nature que la propriété doit lui être indiqué.
Par exemple, pour la propriéténumeroClient, déclaréeint, la fonction Set sera déclarée de la façon suivante :
Public Function SetNumeroClient(ByVal numeroClient As Integer)
Me.numeroClient = numeroClient
End Function
Me désigne l’instance en cours qui exécute la méthode.
Cette fonction pourra être utilisée dans la fonctio main, par exemple :
Dim cli As New Client
cli.SetNumeroClient(1)
L’intérêt de passer par des fonctionsSet est de pouvoir y localiser des contrôles de validité des paramètres passés pour assurer la ohérence de l’objet, en y déclenchant des exceptions par exemple. La sécurisation des classes sera abordée ultérieurement dans ce cours.
Remarque :
Les modifiers Set peuvent être implémentés par dessous programmes Sub.
Support de Formation Apprentissage d’un langage de Programmation Orientée Objet : VB.NET
Accès aux attributs membres par les Property de classe
Il est possible de définir les accès aux attributsd’une classe par des propriétés Property à la place des méthodes Get et Set. Cette possibilité existe aussi en VB 6.
Exemple de la classe Client :
Public Property Nom() As String
Get
Return nomClient
End Get
Set(ByVal Value As String)
nomClient = Value
End Set
End Property
Utilisation des « properties »
Dim cli As New Client
cli.SetNumeroClient(1)
‘ property cli.Nom = « Toto »
Console.WriteLine(« nom client » & cli.Nom())
TRAVAIL A REALISER
A partir du travail réalisé au T.P. N° 1, modifierla classe Salarie pour :
• protéger les propriétés et en interdire l’accès del’extérieur de l’objet (l’accès aux fonctions membres doit toujours être possible),créer les méthodes d’accès aux propriétés Get et Set.
• Modifier la fonction Main de la classe Application pour tester.
Bonus : vous pouvez tester les propriétés de classe Property …
Apprentissage d’un langage de Programmation Orientée Objet : VB.NET Support de formation
CONSTRUCTION ET DESTRUCTION
OBJECTIFS
• Constructeurs et destructeur des objets
• Propriétés et méthodes de classe
CE QU’IL FAUT SAVOIR
Constructeurs
Quand une instance d’une classe d’objet est crééeuamoment de l’instanciation d’une variable avec new, une fonction particulière est exécutée. Cette fonction s’appelle le constructeur. Elle permet, entre autre, d’initialiser chaque instance pour que ses propriétés aient un contenu cohérent.
Un constructeur est déclaré comme les autres fonctions membres à deux différences près :
• Le nom de l’identificateur du constructeur est New.
• Un constructeur ne renvoie pas de résultat. On utilisera donc des méthodfes de type Sub pour les constructeurs
Exemple de définition dans la classe Client
‘ constructeur par défaut vide
Public Sub New()
‘ vide End Sub
‘ constructeur d’initialisation le CA est augmentépar la méthode AugmenterCA Public Sub New(ByVal numero As Integer, ByVal nom As String)
Me.numeroClient = numero Me.nomClient = nom
End Sub
Innstanciation d’un objet Client :
Dim cli As Client = New Client(12, « Titi »)
Console.WriteLine(« numéro client » & cli.GetNumeroClient())
Support de Formation Apprentissage d’un langage de Programmation Orientée Objet : VB.NET
Surcharge des constructeurs
Il peut y avoir plusieurs constructeurs pour une même classe, chacun d’eux correspondant à une initialisation particulière. Tous les constructeurs ont le même nom mais se distinguent par le nombre et le type des paramètres passés (cette propriété s’appelle surcharge en programmation objet). Quand on crée une nouvelle classe, il est indispensable de prévoir tous les constructeurs nécessaires. Deux sont particulier :
Constructeur d’initialisation
Ce constructeur permet de procéder à une instanciation en initialisant toutes les propriétés, la valeur de celles-ci étant passée dans les paramètres.
Pour la classe Client, ce constructeur est déclaré comme ceci :
‘ constructeur d’initialisation le CA est augmentépar la méthode AugmenterCA Public Sub New(ByVal numero As Integer, ByVal nom As String)
Me.numeroClient = numero Me.nomClient = nom
End Sub
Cela va permettre d’instancier la classe Client de la façon suivante :
Dim cli As Client = New Client(12, « Titi »)
Console.WriteLine(« numéro client » & cli.GetNumeroClient())
INTRODUCTION
T.P. N°1 – CLASSE D’OBJET – ENCAPSULATION
1.1 OBJECTIFS
1.2 CE QU’IL FAUT SAVOIR
1.2.1 Notion de classe
1.2.2 Encapsulation
1.2.3 Déclaration des propriétés d’un objet
1.2.4 Implantation des méthodes
1.2.5 Instanciation
1.2.6 Accès aux propriétés et aux méthodes
1.2.7 Conventions d’écriture
1.3 TRAVAIL A REALISER
T.P. N° 2 – ENCAPSULATION PROTECTION ET ACCES AUX D ONNEES MEMBRES
2.1 OBJECTIFS
2.2 CE QU’IL FAUT SAVOIR
2.2.1 Protection des propriétés
2.2.2 Fonctions d’accès aux propriétés
Remarque :
2.2.3 Accès aux attributs membres par les Property de classe
2.3 TRAVAIL A REALISER
T.P. N° 3 – CONSTRUCTION ET DESTRUCTION
3.1 OBJECTIFS
3.2 CE QU’IL FAUT SAVOIR
3.2.1 Constructeurs
3.2.2 Surcharge des constructeurs
3.2.3 Propriétés de classe
3.2.4 Méthodes de classe
3.2.5 Destructeur
3.3 TRAVAIL A REALISER
T.P. N°4 – L’HERITAGE
4.1 OBJECTIFS
4.3 CE QU’IL FAUT SAVOIR
4.2.1 L’héritage
4.2.2 Protection des propriétés et des méthodes
4.2.3 Mode de représentation
4.3 TRAVAIL A REALISER
T.P. N°5 – LES COLLECTIONS
5.1 OBJECTIFS
5.2 CE QU’IL FAUT SAVOIR
5.2.1 Les tableaux statiques
5.2.2 Classe ArraysList
5.2.3 SortedList SortedList est un dictionnaire qui garantit que les clés sont rangées de façon
ascendante.
5.3 TRAVAIL A REALISER
T.P. N° 6 – POLYMORPHISME
6.1 OBJECTIFS
6.2 CE QU’IL FAUT SAVOIR
6.2.1 Polymorphisme
6.2.2 Méthodes virtuelles
6.2.3 Classes génériques
6.3 TRAVAIL A REALISER
CONCLUSION