UKOnline

Objet et classe

Pour pouvoir créer des objets dans un programme, il faut avant tout avoir défini une classe. Il s'agit en quelque sorte d'un plan, qui décrit les caractéristiques de l'objet. En particulier, une classe définit les deux éléments constitutifs des objets que sont ses attributs et fonctionnalités.

Un objet est donc construit à partir d'une classe et on dit qu'il en est une instance. La classe est le modèle à partir duquel il est possible de créer autant d'objets que l'on souhaite. La figure 1 illustre ce concept en montrant quatre instances qu'il est possible d'obtenir à partir d'une classe GSM (représentée au centre).

Instances d'une classe
Un objet est une instance d'une classe, qui possède son propre état, défini par les valeurs de ses différents attributs.

Attribut et fonctionnalité

Pour rappel, un objet possède des attributs et offre des fonctionnalités. Un attribut est une donnée stockée dans l'objet et qui permet de le caractériser. L'ensemble des valeurs de tous les attributs d'un objet donné définit son état. Une fonctionnalité permet d'effectuer une opération grâce à l'objet. On peut, par exemple, l'interroger pour obtenir une information le concernant, ou alors effectuer une action sur cet objet.

La figure 2 montre une variable g de type GSM qui contient une référence vers un objet, lien indiqué par une flèche simple (Référence). L'objet ainsi créé est une instance d'une classe, représentée à droite sur l'image, lien indiqué par la flèche inversée (Instance). Dans la classe, on peut voir deux parties séparées par un trait horizontal :

  • la partie supérieure liste tous les attributs qu'auront tous les objets instanciés à partir de cette classe ;
  • la partie inférieure liste toutes les fonctionnalités applicables aux objets qui seront construits à partir de cette classe.

Enfin, dans l'objet, on retrouve les valeurs de tous les attributs. Ainsi, cette instance en particulier a « Sony Ericsson » comme valeur pour l'attribut Marque, « w200i » pour l'attribut Modèle et enfin « Orange-Blanc » comme Couleur.

Classe, objet et référence
Un objet est une instance d'une classe, possède une valeur pour chacun de ses attributs et offre plusieurs fonctionnalités qui y sont décrites.

Définition de classe

On définit une nouvelle classe à l'aide du mot réservé class suivi d'un nom, de deux-points (:) et on termine avec le corps de la classe indenté d'un niveau. L'exemple suivant définit une nouvelle classe appelée Contact qui permet de représenter un élément d'un carnet de contacts :

Le mot réservé pass représente l'instruction vide, c'est-à-dire que son exécution ne fait rien. On vient donc de définir une classe Contact dont le corps est vide, c'est-à-dire qu'elle ne possède aucun attribut, ni fonctionnalité, propres à elle.

On peut dorénavant créer des instances à partir de cette classe. L'exemple suivant crée deux objets à partir de la classe :

La figure 3 montre la situation en mémoire après exécution de ces deux instructions. On y voit clairement qu'il y a une seule classe Contact à partir de laquelle deux objets ont été créés. De plus, des références vers ces objets se trouvent respectivement dans les variables a et b, qui sont dès lors de type Contact.

Plusieurs instances
Un objet est une instance d'une classe, possède une valeur pour chacun de ses attributs et offre plusieurs fonctionnalités qui y sont décrites.