Cours programmation orientée objet dans Visual Basic 

Cours programmation orientée objet dans Visual Basic , tutoriel & Guide de travaux pratiques informatique en pdf.

Membres partagés

Les membres partagés sont des propriétés, des procédures et des champs qui sont partagés par toutes les instances d’une classe. Ils sont appelés membres statiques dans certains langages de programmation.
Les champs et propriétés partagés sont utiles lorsque certaines informations font partie d’une classe mais ne sont pas spécifiques à une instance particulière d’une classe. Des champs et propriétés normaux existent indépendamment pour chaque instance d’une classe. Modifier la valeur d’un champ ou d’une propriété associés à une instance particulière n’a aucune incidence sur la valeur des champs ou propriétés d’autres instances de la classe. Par contre, si vous modifiez la valeur d’un champ et d’une propriété partagés associés à une instance d’une classe, vous modifiez également la valeur associée à toutes les instances de la classe. De cette façon, les champs et propriétés partagés se comportent comme des variables globales accessibles uniquement à partir d’instances d’une classe. Sans champs et propriétés statiques, vous devriez recourir à des variables de module pour obtenir le même résultat. Cependant, l’emploi de variables de module peut rendre les classes difficiles à comprendre et à gérer. De plus, utiliser ces variables de cette façon enfreint le concept d’encapsulation représenté par les classes.
Les procédures partagées sont des méthodes de classe qui ne sont pas associées à une instance spécifique d’une classe. Par exemple, la méthode Cos définie dans la class Math est une méthode partagée. Il est possible d’appeler une procédure partagée en l’appelant en tant que méthode d’un objet ou directement à partir de la classe. Dès lors, les procédures partagées constituent une exception à la règle selon laquelle vous devez créer une instance d’une classe avant de pouvoir l’utiliser.
Des instances de la classe ne sont pas passées implicitement aux procédures partagées. Pour cette raison, les méthodes partagées ne peuvent pas contenir de référence non qualifiée à des données membres non partagées.

Membres partagés – exemple

L’exemple suivant crée une instance de champ, un champ partagé et une méthode partagée pour illustrer le fonctionnement des membres partagés dans le code :
Public InstanceValue As String
Public Share d SharedValue As String
Public Shared Sub ShareMethod()
MsgBox(« This is a shared method. »)
End Sub End Class Sub TestShared()
Dim Shared1 As New ShareClass()
‘ Create an instance of the class.
Dim Shared2 As New ShareClass()
‘ Create an instance of the class.
Shared1.SharedValue = « Share Value 1
 » ‘ Set the value of a shared field.
Shared2.SharedValue = « Share Value 2 »
‘ Overwrite the first value.
MsgBox(« The value of the shared field in the first instance » & _ « is:  » & Shared1.SharedValue) MsgBox(« The value of the shared field in the second instance » & _ « is:  » & Shared2.SharedValue) ‘ Call a method on the class without creating an instance. ShareClass.ShareMethod() End Sub
Lorsque vous exécutez la procédure TestShared, deux instances de la classe sont créées, et le champ partagé SharedValue est modifié pour les deux instances. Quand le champ partagé de la deuxième instance de la classe est modifié, la valeur assignée au champ partagé de la première instance de la classe est remplacée car les deux instances font référence au même champ.
Par souci de clarté, cet exemple utilise des variables objet pour accéder aux membres partagés, mais il est préférable en programmation d’accéder aux membres partagés directement au moyen du nom de classe ; par exemple, ShareClass.SharedValue = « Share Value 2 ». L’utilisation de la syntaxe des classes pour les membres partagés réduit la confusion, car elle permet de distinguer clairement là où des membres partagés sont employés et là où des instances membres le sont.

………..

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *