“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 279 — #289
i
i
i
i
i
i
i
i
6.2 Les classes comme abstractions complètes
279
6.2.5 L’initialisation des attributs
Il y a trois manières d’initialiser un attribut : par instance, par classe ou par marque.
– Par instance. Un attribut peut avoir une valeur initiale différente pour chaque
instance. Pour faire cela, on l’initialise dans une méthode. Par exemple :
class OneApt
attr streetName
meth init(X) @streetName=X end
end
Apt1={New OneApt init(drottninggatan)}
Apt2={New OneApt init(rueNeuve)}
Chaque instance, y compris Apt1 et Apt2, contient initialement une autre
variable non liée. Chacune de ces variables peut donc être liée à une autre valeur.
– Par classe. Un attribut peut avoir une valeur initiale qui est la même pour toutes
les instances de la classe. Pour faire cela on l’initialise avec « : » dans la définition
de la classe. Par exemple :
class Apartment
attr
streetName:york
streetNumber:100
wallColor:_
floorSurface:wood
meth init skip end
end
Apt3={New Apartment init}
Apt4={New Apartment init}
Toutes les instances, y compris Apt3 et Apt4, auront les mêmes valeurs initiales
pour les quatre attributs. Attention, cela inclut aussi wallColor, même si la
valeur initiale est une variable non liée. Toutes les instances feront référence à la
même variable non liée. Elle peut être liée dans une des instances, par exemple
en faisant @wallColor=white. Toutes les instances ont alors cette même
valeur. Il ne faut pas confondre les deux opérations @wallColor=white et
wallColor:=white. La première opération garde la même variable dans
wallColor. La deuxième opération y met une nouvelle variable.
– Par marque. C’est une autre manière d’utiliser l’initialisation par classe. Une
marque (« brand ») est un ensemble de classes qui sont apparentées mais pas par
l’héritage. On peut donner à un attribut une valeur qui est la même pour tous les
© Dunod – La photocopie non autorisée est un délit
i
i
i
i
i
i
i
i
6.2 Les classes comme abstractions complètes
279
6.2.5 L’initialisation des attributs
Il y a trois manières d’initialiser un attribut : par instance, par classe ou par marque.
– Par instance. Un attribut peut avoir une valeur initiale différente pour chaque
instance. Pour faire cela, on l’initialise dans une méthode. Par exemple :
class OneApt
attr streetName
meth init(X) @streetName=X end
end
Apt1={New OneApt init(drottninggatan)}
Apt2={New OneApt init(rueNeuve)}
Chaque instance, y compris Apt1 et Apt2, contient initialement une autre
variable non liée. Chacune de ces variables peut donc être liée à une autre valeur.
– Par classe. Un attribut peut avoir une valeur initiale qui est la même pour toutes
les instances de la classe. Pour faire cela on l’initialise avec « : » dans la définition
de la classe. Par exemple :
class Apartment
attr
streetName:york
streetNumber:100
wallColor:_
floorSurface:wood
meth init skip end
end
Apt3={New Apartment init}
Apt4={New Apartment init}
Toutes les instances, y compris Apt3 et Apt4, auront les mêmes valeurs initiales
pour les quatre attributs. Attention, cela inclut aussi wallColor, même si la
valeur initiale est une variable non liée. Toutes les instances feront référence à la
même variable non liée. Elle peut être liée dans une des instances, par exemple
en faisant @wallColor=white. Toutes les instances ont alors cette même
valeur. Il ne faut pas confondre les deux opérations @wallColor=white et
wallColor:=white. La première opération garde la même variable dans
wallColor. La deuxième opération y met une nouvelle variable.
– Par marque. C’est une autre manière d’utiliser l’initialisation par classe. Une
marque (« brand ») est un ensemble de classes qui sont apparentées mais pas par
l’héritage. On peut donner à un attribut une valeur qui est la même pour tous les
© Dunod – La photocopie non autorisée est un délit
