Classes et objets
CHAPITRE 9
180
La notion de classe généralise aux objets la notion de type : une classe n’est rien d’autre
qu’une description (unique) pouvant donner naissance à différents objets disposant de la
même structure de données (mêmes noms et types d’attributs) et des mêmes méthodes. Différents objets d’une même classe se distinguent par les valeurs de leurs attributs ; en revanche, ils partagent les mêmes méthodes. On trouvait une situation comparable avec deux
variables d’un type réel qui pouvaient différer par leur valeur ; leur structure de données
(réduite ici à une valeur de type réel) et leurs « fonctionnalités » (addition, soustraction...)
étaient communes.
Généralement, en programmation orientée objet, soit on définit une classe que l’on pourra
utiliser ensuite pour créer un ou plusieurs objets de cette classe, soit on utilise des classes
existantes (fournies avec le langage ou créées par vous-même ou par d’autres programmeurs). On retrouve là encore quelque chose de comparable à ce qui se passait avec les fonctions.
2 Un premier exemple : une classe Point
Pour introduire ces nouvelles possibilités de classe, objet et encapsulation, nous vous proposons de voir à la fois comment définir et utiliser une nouvelle classe nommée Point, permettant de manipuler des points d’un plan. Nous souhaitons qu’elle dispose des trois méthodes
suivantes :
• initialise pour attribuer des valeurs aux coordonnées d’un point (ici, nous utiliserons le
système le plus courant de « coordonnées cartésiennes ») ;
• deplace pour modifier les coordonnées d’un point ;
• affiche pour afficher un point ; par souci de simplicité, nous nous contenterons ici d’afficher les coordonnées du point.
En ce qui concerne ses attributs, nous choisirons d’utiliser deux entiers 1 représentant les
coordonnées d’un point ; déjà à ce niveau, signalons que rien ne nous empêcherait d’utiliser
d’autres informations (coordonnées polaires, par exemple), dans la mesure où ces informations ne seront pas exploitées directement à l’extérieur de la classe.
Dans un premier temps, nous supposerons que notre classe a été convenablement définie et
nous allons voir comment l’exploiter pour donner naissance à des objets représentant des
points et comment les manipuler. Il nous sera ensuite plus facile de revenir sur la
« définition » de la classe elle-même.
1. En toute rigueur, suivant l’usage que l’on sera amené à faire de ces «points », le type réel pourra parfois s’avérer
plus adapté.
CHAPITRE 9
180
La notion de classe généralise aux objets la notion de type : une classe n’est rien d’autre
qu’une description (unique) pouvant donner naissance à différents objets disposant de la
même structure de données (mêmes noms et types d’attributs) et des mêmes méthodes. Différents objets d’une même classe se distinguent par les valeurs de leurs attributs ; en revanche, ils partagent les mêmes méthodes. On trouvait une situation comparable avec deux
variables d’un type réel qui pouvaient différer par leur valeur ; leur structure de données
(réduite ici à une valeur de type réel) et leurs « fonctionnalités » (addition, soustraction...)
étaient communes.
Généralement, en programmation orientée objet, soit on définit une classe que l’on pourra
utiliser ensuite pour créer un ou plusieurs objets de cette classe, soit on utilise des classes
existantes (fournies avec le langage ou créées par vous-même ou par d’autres programmeurs). On retrouve là encore quelque chose de comparable à ce qui se passait avec les fonctions.
2 Un premier exemple : une classe Point
Pour introduire ces nouvelles possibilités de classe, objet et encapsulation, nous vous proposons de voir à la fois comment définir et utiliser une nouvelle classe nommée Point, permettant de manipuler des points d’un plan. Nous souhaitons qu’elle dispose des trois méthodes
suivantes :
• initialise pour attribuer des valeurs aux coordonnées d’un point (ici, nous utiliserons le
système le plus courant de « coordonnées cartésiennes ») ;
• deplace pour modifier les coordonnées d’un point ;
• affiche pour afficher un point ; par souci de simplicité, nous nous contenterons ici d’afficher les coordonnées du point.
En ce qui concerne ses attributs, nous choisirons d’utiliser deux entiers 1 représentant les
coordonnées d’un point ; déjà à ce niveau, signalons que rien ne nous empêcherait d’utiliser
d’autres informations (coordonnées polaires, par exemple), dans la mesure où ces informations ne seront pas exploitées directement à l’extérieur de la classe.
Dans un premier temps, nous supposerons que notre classe a été convenablement définie et
nous allons voir comment l’exploiter pour donner naissance à des objets représentant des
points et comment les manipuler. Il nous sera ensuite plus facile de revenir sur la
« définition » de la classe elle-même.
1. En toute rigueur, suivant l’usage que l’on sera amené à faire de ces «points », le type réel pourra parfois s’avérer
plus adapté.
