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)

Module, instruction

Property, instruction

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)

Autres ressources

Objets et classes en Visual Basic