Class, instruction (Visual Basic)
Mise à jour : novembre 2007
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
Éléments
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.NotInheritable
Facultatif. Consultez NotInheritable.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.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 l'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 l'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 Programmation orientée objet dans Visual Basic et Classes : modèles d'objets.
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.
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 (Visual Basic) ou par une fonction telle que CreateObject, fonction (Visual Basic). 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 (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 Propriétés par défaut.
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é. Pour plus d'informations, consultez Résolution d'une référence lorsque plusieurs variables ont le même nom.
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 Classes et modules.
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
Concepts
Durée de vie d'un objet : création et destruction des objets
Types génériques en Visual Basic
Référence
Interface, instruction (Visual Basic)