Class, instruction (Visual Basic)
Déclare le nom d'une classe et introduit la définition des variables, des propriétés, des événements et des procédures que la classe contient.
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ statements ]
End Class
Composants
Terme |
Définition |
attributelist |
Facultatif.Consultez Liste d'attributs. |
accessmodifier |
Facultatif.Il peut s'agir de l'une des valeurs suivantes : Consultez Niveaux d'accès dans Visual Basic. |
Shadows |
Facultatif.Consultez Shadows. |
MustInherit |
Facultatif.Consultez MustInherit (Visual Basic). |
NotInheritable |
Facultatif.Consultez NotInheritable (Visual Basic). |
Partial |
Facultatif.Indique une définition partielle de la classe.Consultez Partial (Visual Basic). |
name |
Obligatoire.Nom de cette classe.Consultez Noms d'éléments déclarés (Visual Basic). |
Of |
Facultatif.Spécifie qu'il s'agit d'une classe générique. |
typelist |
Requis si vous utilisez le mot clé Of.Liste de paramètres de type pour cette classe.Consultez Liste de types. |
Inherits |
Facultatif.Indique que cette classe hérite des membres d'une autre classe.Consultez Inherits, instruction. |
classname |
Requis si vous utilisez l'instruction Inherits.Nom de la classe dont cette classe dérive. |
Implements |
Facultatif.Indique que cette classe implémente les membres d'une ou plusieurs interfaces.Consultez Implements, instruction. |
interfacenames |
Requis si vous utilisez l'instruction Implements.Noms des interfaces que cette classe implémente. |
statements |
Facultatif.Instructions qui définissent les membres de cette classe. |
End Class |
Obligatoire.Met fin à la définition Class. |
Notes
Une instruction Class définit un nouveau type de données.Une classe est un bloc de construction fondamental d'une programmation orientée objet (OOP).Pour plus d'informations, consultez Objets et classes en Visual Basic.
Vous pouvez utiliser Class uniquement au niveau de l'espace de noms ou du module.Cela signifie que le contexte de déclaration pour une classe doit être un fichier source, un espace de noms, une classe, une structure, un module ou une interface, et ne peut pas être une procédure ni un bloc.Pour plus d'informations, consultez Contextes de déclaration et niveaux d'accès par défaut (Visual Basic).
Chaque instance d'une classe a une durée de vie indépendante de toutes les autres instances.Cette durée de vie commence lorsqu'elle est créée par une clause New, opérateur (Visual Basic) ou par une fonction telle que CreateObject.Elle prend fin lorsque la valeur Nothing (Visual Basic) ou les instances d'autres classes ont été affectées à toutes les variables pointant sur l'instance.
Les classes prennent par défaut l'accès Friend (Visual Basic).Vous pouvez régler leurs niveaux d'accès avec les modificateurs d'accès.Pour plus d'informations, consultez Niveaux d'accès dans Visual Basic.
Règles
Imbrication. Vous pouvez définir une classe dans une autre.La classe externe est appelée classe conteneur et la classe interne classe imbriquée.
Héritage. Si la classe utilise l'Inherits, instruction, vous ne pouvez spécifier qu'une seule classe de base ou interface.Une classe ne peut pas hériter de plusieurs éléments.
Une classe ne peut pas hériter d'une autre classe avec un niveau d'accès plus restrictif.Par exemple, une classe Public ne peut pas hériter d'une classe Friend.
Une classe ne peut pas hériter d'une classe imbriquée dans celle-ci.
Implémentation. Si la classe utilise l'Implements, instruction, vous devez implémenter chaque membre défini par chaque interface que vous spécifiez dans interfacenames.La nouvelle implémentation d'un membre de classe de base est une exception.Pour plus d'informations, consultez « Nouvelle implémentation » dans Implements, clause (Visual Basic).
Default, propriété. Une classe peut spécifier qu'une propriété comme étant sa propriété par défaut.Pour plus d'informations, consultez Default (Visual Basic).
Comportement
Niveau d'accès. Dans une classe, vous pouvez déclarer chaque membre avec son propre niveau d'accès.Les membres de la classe prennent par défaut l'accès Public (Visual Basic), à l'exception des variables et des constantes qui prennent par défaut l'accès Private (Visual Basic).Lorsqu'une classe a un accès plus limité que l'un de ses membres, le niveau d'accès de la classe a la priorité.
Portée. Une classe est dans la portée dans tout son espace de noms, sa classe, sa structure ou son module conteneur.
La portée de chaque membre de classe est la classe entière.
Durée de vie. Visual Basic ne prend pas en charge des classes statiques.L'équivalent fonctionnel d'une classe statique est fourni par un module.Pour plus d'informations, consultez Module, instruction.
Les durées de vie des membres de classe dépendent de la manière et de l'emplacement où elles sont déclarées.Pour plus d'informations, consultez Durée de vie dans Visual Basic.
Qualification. Le code à l'extérieur d'une classe doit qualifier le nom d'un membre portant le même nom que cette classe.
Si le code à l'intérieur d'une classe imbriquée établit une référence non qualifiée à un élément de programmation, Visual Basic recherche d'abord l'élément dans sa classe imbriquée, puis dans sa classe conteneur, etc. jusqu'à l'élément conteneur le plus éloigné.
Classes et Modules
Ces éléments présentent beaucoup de similitudes, mais ils comportent également beaucoup de différences.
Terminologie. Les versions précédentes de Visual Basic reconnaissent deux types de modules : modules de classe (fichiers .cls) et modules standard (fichiers .bas).La version actuelle appelle respectivement ces classes et ces modules.
Membres partagés. Vous pouvez contrôler si un membre d'une classe est un membre partagé ou un membre d'instance.
Orientation objet. Les classes sont orientées objet, ce qui n'est pas le cas des modules.Vous pouvez créer une ou plusieurs instances d'une classe.Pour plus d'informations, consultez Objets et classes en Visual Basic.
Exemple
L'exemple suivant utilise une instruction Class pour définir une classe et plusieurs membres.
Class bankAccount
Shared interestRate As Decimal
Private accountNumber As String
Private accountBalance As Decimal
Public holdOnAccount As Boolean = False
Public ReadOnly Property balance() As Decimal
Get
Return accountBalance
End Get
End Property
Public Sub postInterest()
accountBalance = accountBalance * (1 + interestRate)
End Sub
Public Sub postDeposit(ByVal amountIn As Decimal)
accountBalance = accountBalance + amountIn
End Sub
Public Sub postWithdrawal(ByVal amountOut As Decimal)
accountBalance = accountBalance - amountOut
End Sub
End Class
Voir aussi
Tâches
Comment : utiliser une classe générique (Visual Basic)
Référence
Interface, instruction (Visual Basic)
Concepts
Structures et classes (Visual Basic)
Durée de vie d'un objet : création et destruction des objets (Visual Basic)
Types génériques en Visual Basic (Visual Basic)