“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 280 — #290
i
i
i
i
i
i
i
i
280
6
• La programmation orientée objet
membres d’une marque en les initialisant avec la même variable pour tous les
membres. Par exemple
1 :
L=linux
class RedHat attr ostype:L end
class SuSE attr ostype:L end
class Debian attr ostype:L end
Chaque instance de chaque classe sera initialisée à la même valeur.
6.2.6 Les techniques de programmation
Le concept de classe que nous avons introduit jusque-là nous donne une syntaxe
commode pour définir des abstractions de données avec l’état encapsulé et plusieurs
opérations. L’instruction class définit une valeur de classe qui peut être instanciée
pour obtenir des objets. En plus d’une syntaxe commode, les valeurs de classe définies
ici gardent tous les avantages des valeurs procédurales. Les techniques de programmation pour les procédures sont aussi applicables aux classes. Les classes peuvent avoir
des références externes tout comme les valeurs procédurales. Les classes sont compositionnelles : on peut imbriquer les classes dans les classes. Elles sont compatibles
avec les valeurs procédurales : on peut imbriquer les classes dans les procédures et
vice versa. Les classes ne sont pas aussi souples dans tous les langages orientés objet ;
souvent il y a quelques limitations.
6.3 LES CLASSES COMME ABSTRACTIONS INCRÉMENTALES
Comme nous l’avons expliqué, l’héritage est le concept majeur que la POO ajoute à
la programmation par composants. La POO permet la définition incrémentale d’une
classe comme une extension des classes existantes. Il y a trois concepts importants
pour utiliser l’héritage :
– Le premier est le graphe d’héritage (voir section 6.3.1), qui définit quelles classes
sont étendues. Notre modèle permet l’héritage simple et multiple.
– Le deuxième est le contrôle d’accès aux méthodes (voir section 6.3.3), qui définit
comment accéder aux méthodes dans les classes. Il utilise les liens statiques et
dynamiques et le concept de self.
– Le troisième est le contrôle d’encapsulation (voir section 6.3.4), qui définit quelle
partie du programme peut voir les attributs et les méthodes d’une classe. Nous
définissons les portées les plus populaires et nous montrons comment les autres
portées peuvent être programmées.
1. Avec nos excuses à toutes les distributions Linux omises.
Précédent

- 295/370

Suivant