Partager via


Instruction de classe (Visual Basic)

Déclare le nom d’une classe et introduit la définition des variables, propriétés, événements et procédures que la classe comprend.

Syntaxe

[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _  
Class name [ ( Of typelist ) ]  
    [ Inherits classname ]  
    [ Implements interfacenames ]  
    [ statements ]  
End Class  

Pièces

Terme Définition
attributelist Optionnel. Consultez la liste des attributs.
accessmodifier Optionnel. Il peut s’agir de l’un des éléments suivants :

- Public
- Protégé
- Ami
- Privé
- Ami protégé
- Privé protégé

Consultez les niveaux d’accès en Visual Basic.
Shadows Optionnel. Voir Ombres.
MustInherit Optionnel. Voir MustInherit.
NotInheritable Optionnel. Voir NotInheritable.
Partial Optionnel. Indique une définition partielle de la classe. Voir Partiel.
name Obligatoire. Nom de cette classe. Voir Noms d’éléments déclarés.
Of Optionnel. Spécifie qu’il s’agit d’une classe générique.
typelist Obligatoire si vous utilisez le mot clé Of . Liste des paramètres de type pour cette classe. Consultez La liste des types.
Inherits Optionnel. Indique que cette classe hérite des membres d’une autre classe. Voir l’instruction Inherits.
classname Obligatoire si vous utilisez l’instruction Inherits . Nom de la classe à partir de laquelle cette classe dérive.
Implements Optionnel. Indique que cette classe implémente les membres d’une ou plusieurs interfaces. Consultez l’instruction Implements.
interfacenames Obligatoire si vous utilisez l’instruction Implements . Noms des interfaces implémentées par cette classe.
statements Optionnel. Instructions qui définissent les membres de cette classe.
End Class Obligatoire. Met fin à la Class définition.

Remarques

Une Class instruction définit un nouveau type de données. Une classe est un bloc de construction fondamental de la programmation orientée objet (OOP). Pour plus d’informations, consultez Objets et classes.

Vous ne pouvez utiliser Class qu’au niveau de l’espace de noms ou du module. Cela signifie que le contexte de déclaration d’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 ou 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 Operator ou par une fonction telle que CreateObject. Elle se termine lorsque toutes les variables pointant vers l’instance ont été définies sur Nothing ou sur des instances d’autres classes.

Classes par défaut pour l’accès Friend . Vous pouvez ajuster leurs niveaux d’accès avec les modificateurs d’accès. Pour plus d’informations, consultez Niveaux d’accès en Visual Basic.

Règles

  • Nidification. Vous pouvez définir une classe dans une autre. La classe externe est appelée classe conteneur et la classe interne est appelée classe imbriquée.

  • Héritage. Si la classe utilise l’instruction Inherits, 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 Public classe ne peut pas hériter d’une Friend classe.

    Une classe ne peut pas hériter d’une classe imbriquée dans celle-ci.

  • Mise en œuvre. Si la classe utilise l’instruction Implements, vous devez implémenter chaque membre défini par chaque interface que vous spécifiez dans interfacenames. Une exception à ceci est la réexédition d’un membre de classe de base. Pour plus d’informations, consultez « Reimplementation » dans Implements.

  • Propriété par défaut. Une classe peut spécifier au maximum une propriété comme propriété par défaut. Pour plus d’informations, consultez Default.

Comportement

  • Niveau d’accès. Dans une classe, vous pouvez déclarer chaque membre avec son propre niveau d’accès. Les membres de classe ont la valeur par défaut pour l’accès public , à l’exception des variables et des constantes, qui sont par défaut l’accès privé . Lorsqu’une classe a plus d’accès restreint qu’un de ses membres, le niveau d’accès à la classe est prioritaire.

  • Portée. Une classe est dans l’étendue tout au long de son espace de noms, de sa classe, de sa structure ou de son module.

    L’étendue de chaque membre de classe est la classe entière.

    Durée de vie. Visual Basic ne prend pas en charge les classes statiques. L’équivalent fonctionnel d’une classe statique est fourni par un module. Pour plus d’informations, consultez l’instruction module.

    Les membres de classe ont des durées de vie en fonction de la façon et de l’emplacement où ils sont déclarés. Pour plus d’informations, consultez Durée de vie en Visual Basic.

  • Qualification. Le code en dehors d’une classe doit qualifier le nom d’un membre avec le nom de cette classe.

    Si le code à l’intérieur d’une classe imbriquée fait une référence non qualifiée à un élément de programmation, Visual Basic recherche d’abord l’élément dans la classe imbriquée, puis dans sa classe contenante, et ainsi de suite vers l’élément conteneur le plus externe.

Classes et modules

Ces éléments ont de nombreuses similitudes, mais il existe également des différences importantes.

  • Terminologie. Les versions précédentes de Visual Basic reconnaissent deux types de modules : les modules de classe (fichiers .cls) et les modules standard (fichiers.bas). La version actuelle appelle ces classes et modules, respectivement.

  • Membres partagés. Vous pouvez contrôler si un membre d’une classe est un membre partagé ou un membre d’instance.

  • Orientation de l’objet. Les classes sont orientées objet, mais les modules ne le sont pas. Vous pouvez créer une ou plusieurs instances d’une classe. Pour plus d’informations, consultez Objets et classes.

Exemple :

L’exemple suivant utilise une Class instruction pour définir une classe et plusieurs membres.

Class BankAccount
    Shared interestRate As Decimal
    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