“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 19 — #29
i
i
i
i
i
i
i
i
1.13 Les classes
19
declare
fun {NewCounter}
C Bump Read in
C={NewCell 0}
fun {Bump} C:=@C+1 @C end
fun {Read} @C end
counter(bump:Bump read:Read)
end
NewCounter est une fonction qui crée une nouvelle cellule et renvoie de nouvelles
fonctions Bump et Read qui utilisent cette cellule. Nous remarquons qu’une fonction
peut renvoyer une fonction comme résultat. La possibilité de créer des fonctions
à tout moment et de les traiter comme n’importe quelle autre valeur s’appelle la
programmation d’ordre supérieur. La section 1.8 en donne un autre exemple. C’est
une technique de programmation qui est souvent utilisée.
Nous groupons les fonctions Bump et Read ensemble dans un enregistrement,
qui est une structure de données composée permettant un accès facile à ses parties.
L’enregistrement counter(bump:Bump read:Read) est caractérisé par son
étiquette counter et par ses deux champs, appelés bump et read. Nous pouvons
créer deux compteurs :
declare
Ctr1={NewCounter}
Ctr2={NewCounter}
Chaque compteur a sa propre mémoire interne et ses propres fonctions Bump et
Read. Nous pouvons accéder à ses fonctions avec l’opérateur de sélection « . »
(point). Ctr1.bump donne la fonction Bump du premier compteur. Nous pouvons
incrémenter le premier compteur et afficher sa valeur :
{Browse {Ctr1.bump}}
Vers la programmation orientée objet
Nous avons donné un exemple d’une classe NewCounter qui définit les deux opérations Bump et Read. Les opérations définies dans une classe sont appelées ses
méthodes. La classe peut être utilisée pour faire autant d’objets compteurs qu’il nous
faut. Tous ces objets partagent les mêmes méthodes, mais chacun a sa propre mémoire
interne. La programmation avec les classes et les objets s’appelle la programmation
basée objet.
Si nous ajoutons une dernière idée, l’héritage, à la programmation basée objet, nous
obtiendrons la programmation orientée objet. L’héritage nous permet de définir
une nouvelle classe par rapport à des classes existantes, simplement en spécifiant en
© Dunod – La photocopie non autorisée est un délit
i
i
i
i
i
i
i
i
1.13 Les classes
19
declare
fun {NewCounter}
C Bump Read in
C={NewCell 0}
fun {Bump} C:=@C+1 @C end
fun {Read} @C end
counter(bump:Bump read:Read)
end
NewCounter est une fonction qui crée une nouvelle cellule et renvoie de nouvelles
fonctions Bump et Read qui utilisent cette cellule. Nous remarquons qu’une fonction
peut renvoyer une fonction comme résultat. La possibilité de créer des fonctions
à tout moment et de les traiter comme n’importe quelle autre valeur s’appelle la
programmation d’ordre supérieur. La section 1.8 en donne un autre exemple. C’est
une technique de programmation qui est souvent utilisée.
Nous groupons les fonctions Bump et Read ensemble dans un enregistrement,
qui est une structure de données composée permettant un accès facile à ses parties.
L’enregistrement counter(bump:Bump read:Read) est caractérisé par son
étiquette counter et par ses deux champs, appelés bump et read. Nous pouvons
créer deux compteurs :
declare
Ctr1={NewCounter}
Ctr2={NewCounter}
Chaque compteur a sa propre mémoire interne et ses propres fonctions Bump et
Read. Nous pouvons accéder à ses fonctions avec l’opérateur de sélection « . »
(point). Ctr1.bump donne la fonction Bump du premier compteur. Nous pouvons
incrémenter le premier compteur et afficher sa valeur :
{Browse {Ctr1.bump}}
Vers la programmation orientée objet
Nous avons donné un exemple d’une classe NewCounter qui définit les deux opérations Bump et Read. Les opérations définies dans une classe sont appelées ses
méthodes. La classe peut être utilisée pour faire autant d’objets compteurs qu’il nous
faut. Tous ces objets partagent les mêmes méthodes, mais chacun a sa propre mémoire
interne. La programmation avec les classes et les objets s’appelle la programmation
basée objet.
Si nous ajoutons une dernière idée, l’héritage, à la programmation basée objet, nous
obtiendrons la programmation orientée objet. L’héritage nous permet de définir
une nouvelle classe par rapport à des classes existantes, simplement en spécifiant en
© Dunod – La photocopie non autorisée est un délit
