“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 288 — #298
i
i
i
i
i
i
i
i
288
6
• La programmation orientée objet
superclasses, comme I3 dans la figure. Dans C++ et Java, « private » est relative
à une classe et ses instances, comme SousSousC dans la figure.
Instances
SousSousC
I3
I2
...
In
SousC
C
...
I1
Smalltalk et Oz
«private» selon
C++ et Java
«private» selon
Hiérarchie de classe
l’objet I3: tous les attributs
=
Région de visibilité pour
privés dans cette région
sont visibles pour I3
Figure 6.7 Le sens de « private ».
– Avec un identificateur « échappé » comme étiquette. Un identificateur échappé
est marqué avec un point d’exclamation (comme !A). Cela indique que nous
déclarons et lions la variable en dehors de la classe. Quand la classe est définie,
la valeur de la variable devient l’étiquette de la méthode. C’est un mécanisme
très général qui peut être utilisé pour protéger des méthodes de plusieurs façons.
Il peut aussi être utilisé pour d’autres buts que la sécurité. Voici un exemple qui
utilise ce mécanisme pour faire exactement la même chose que le cas précédent :
local A={NewName} in
class C
meth !A(X)
% Corps de la m´ ethode
end
end
end
Cet exemple crée un nom au moment de la définition de la classe, comme
l’exemple précédent, et lie l’étiquette de la méthode avec le nom. En fait, la
définition précédente est simplement un raccourci pour cet exemple.
Laisser le programmeur définir l’étiquette de la méthode permet la définition d’une
politique de sécurité à une granularité très fine. Le programme peut donner l’étiquette
aux entités qui doivent la connaître et pas aux autres.
Précédent

- 303/370

Suivant