Partager via


Modificateurs JScript

Mise à jour : novembre 2007

Les modificateurs JScript modifient le comportement et la visibilité des classes, des interfaces ou des membres des classes ou des interfaces. Vous pouvez utiliser des modificateurs lorsque vous définissez des classes et des interfaces, mais ce n'est généralement pas obligatoire.

Modificateurs de visibilité

Les modificateurs de visibilité permettent de placer des restrictions sur la façon dont un code externe accède aux classes, aux interfaces et à leurs membres. Vous pouvez utiliser les restrictions afin de favoriser une programmation orientée objet efficace, en empêchant l'appel à des champs et de méthodes internes spécialisés.

Par défaut, tout code qui peut accéder à une classe, peut également accéder à n'importe lequel de ses membres. Avec les modificateurs de visibilité, vous pouvez opérer de façon sélective. Vous pouvez par exemple empêcher le code externe d'accéder à des membres de classes spécifiques, autoriser uniquement les classes du même package d'accéder aux membres ou encore permettre aux seules classes dérivées d'accéder aux membres des classes.

Il n'est pas possible d'appliquer des modificateurs de visibilité à des variables ou à des fonctions globales. Les seuls modificateurs de visibilité qui peuvent être utilisés ensemble sont les modificateurs protected et internal.

Modificateur de visibilité

Valide pour

Signification

public

Une classe, un membre de classe, une interface, un membre d'interface ou des énumérations

Le membre est visible pour tout code qui a accès à la classe sans restrictions de visibilité. Dans JScript, les classes, les interfaces et leurs membres sont publics par défaut.

private

Un membre de classe

Le membre n'est visible que dans la classe au sein de laquelle il est déclaré. Il ne l'est pas pour les classes dérivées. Le code externe à la classe en cours ne peut pas accéder aux membres privés.

protected

Un membre de classe

Le membre n'est visible que dans la classe au sein de laquelle il est déclaré et dans toute classe dérivée de cette classe. Le modificateur protected ne peut pas être utilisé pour des classes de portée de package, mais bien pour des classes imbriquées.

internal

Une classe, un membre de classe, une énumération

La classe, le membre de classe ou l'énumération sont visibles partout au sein du package dans lequel ils sont déclarés. Ils ne sont pas visibles en dehors du package.

Modificateurs d'héritage

Les modificateurs d'héritage contrôlent les modalités de substitution des méthodes et propriétés d'une classe de base par celles des classes dérivées. En utilisant ce contrôle, vous pouvez déterminer si des méthodes de classes dérivées doivent substituer une classe que vous créez.

Par défaut, les méthodes d'une classe dérivée substituent les méthodes de la classe de base, à moins que l'attribut hide de version sécurisée ne soit utilisé dans la classe dérivée. Cet attribut aide à empêcher toute substitution. L'emploi de modificateurs d'héritage permet de mieux contrôler si des méthodes données sont toujours substituées ou ne le sont jamais.

Dans certaines situations, vous devez éviter qu'une méthode de la classe de base soit substituée. Par exemple, si vous définissez une classe dans un package, vous pouvez utiliser le modificateur final pour vous assurer que les classes dérivées ne modifient pas les méthodes et les propriétés de la classe.

D'autre part, il peut être nécessaire parfois de substituer certaines méthodes de votre classe. Ainsi, vous pouvez créer une classe qui fournit certaines fonctionnalités de base et utiliser le modificateur abstract pour certaines méthodes. Les implémentations des méthodes abstraites sont réalisées par le writer de la classe dérivée.

Les modificateurs de version sécurisée gèrent également la substitution, mais du côté de la classe dérivée et non de la classe de base. Ces derniers ont un effet uniquement si la méthode de la classe de base qu'ils substituent ne possède pas de modificateur d'héritage.

Il est impossible de combiner deux modificateurs d'héritage ou un modificateur d'héritage et le modificateur static.

Modificateur d'héritage

Valide pour

Signification

abstract

Une classe, une méthode ou une propriété

Pour les méthodes et les propriétés, ce modificateur indique que le membre n'a pas d'implémentation. Pour les classes, il indique qu'il existe une ou plusieurs méthodes implémentées. Une classe abstraite ou une classe qui contient un membre abstrait ne peut pas être instanciée avec le mot clé new, mais elle peut être utilisée comme classe de base.

final

Une classe, une méthode ou une propriété

Pour les classes qui ne peuvent pas être étendues ou les méthodes qui ne peuvent pas être substituées. L'utilisation de final empêche les classes dérivées de modifier le comportement de la classe en substituant des fonctions importantes. Les méthodes qui comprennent le modificateur final peuvent être masquées ou surchargées, mais pas substituées.

Modificateurs de version sécurisée

Les modificateurs de version sécurisée aident à déterminer les méthodes d'une classe dérivée qui substituent les méthodes d'une classe de base. En utilisant ce contrôle, vous pouvez déterminer si une classe que vous créez substituera des méthodes de la classe de base.

Par défaut, les méthodes d'une classe dérivée substituent les méthodes d'une classe de base, même si la présence de modificateurs d'héritage dans la définition de la classe dérivée peut aider à empêcher toute substitution. L'emploi de modificateurs de version sécurisée permet de mieux contrôler si des méthodes données sont substituées ou non.

Dans certaines situations, vous devez éviter que des méthodes de la classe de base soient substituées. Vous pouvez, par exemple, étendre une classe pour modifier le comportement des méthodes de la classe de base. Si vous ne souhaitez pas que ces méthodes soient substituées dans la classe de base, vous pouvez utiliser le modificateur hide dans vos déclarations de méthode.

D'autre part, il est parfois nécessaire de substituer certaines méthodes de la classe de base. Vous pouvez, par exemple, souhaiter modifier les méthodes d'une classe, mais pas la classe elle-même. En étendant la classe et en utilisant le modificateur override dans vos déclarations de méthode, il est possible de substituer la classe de base par les nouvelles méthodes.

Le bon fonctionnement des modificateurs de version sécurisée dépend de l'utilisation ou non de modificateurs d'héritage dans la déclaration des méthodes de la classe de base. Les méthodes de la classe de base marquées avec le modificateur final ne peuvent pas être substituées et les méthodes de la classe de base marquée avec le modificateur abstract ne peuvent être masquées à moins de fournir une implémentation explicite pour la méthode de la classe de base abstraite.

Il est impossible de combiner deux modificateurs de version sécurisée ou un modificateur de version sécurisée et le modificateur static. En mode version sécurisée, vous ne pouvez utiliser qu'un seul modificateur de version sécurisée pour chaque méthode substituant une méthode de la classe de base.

Modificateurs de version sécurisée

Valide pour

Signification

hide

Une méthode ou une propriété

Un membre ne substitue pas un membre du même nom dans la classe de base.

override

Une méthode ou une propriété

Par défaut, les membres substituent les membres du même nom dans la classe de base.

expando, modificateur

Le modificateur expando permet à un objet basé sur une classe de se comporter comme un objet JScript. Les méthodes et les propriétés peuvent être ajoutées de façon dynamique à un objet expando. Pour plus d'informations, consultez Objets basés sur un prototype.

Vous pouvez utiliser le modificateur expando indépendamment des autres modificateurs.

Modificateur

Valide pour

Signification

expando

Une classe ou une méthode

Dans le cas d'une classe, la classe se voit attribuer une propriété indexée, par défaut, capable de stocker et d'extraire des propriétés dynamiques (expando). Dans le cas d'une méthode, indique qu'il s'agit d'un constructeur d'un objet expando.

static, modificateur

Le modificateur static signifie qu'un membre d'une classe appartient à la classe elle-même plutôt qu'aux instances de la classe. En conséquence, vous pouvez avoir des méthodes et des données spécifiques à la classe qui ne sont pas associées à une instance particulière.

Vous ne pouvez pas associer le modificateur static et un modificateur d'héritage ou de version sécurisée.

Modificateur

Valide pour

Signification

static

Une méthode, une propriété, un champ ou une classe

Pour une méthode, indique qu'elle peut être appelée sans une instance de la classe. Pour les propriétés et les champs, indique qu'une copie est partagée par toutes les instances. Il ne faut pas confondre le modificateur static avec l'instruction static, qui identifie le code qui initialise la classe.

Voir aussi

Référence

class, instruction

interface, instruction

function, instruction

function get, instruction

function set, instruction

var, instruction

const, instruction

static, instruction

Autres ressources

Modificateurs