Partager via


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

Structures et classes

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)

Module, instruction

Property, instruction

Autres ressources

Présentation des classes