next up previous contents index
Next: Envoi de message Up: Le modèle à objets Previous: Concepts et principes de

Objet et classe

Smalltalk est un langage purement à objets à objets.

Chaque objet a un numéro (une identité) distinct dans le système. Ce qui différencie deux objets, c'est leur identité. Un objet  sert à stocker et accéder à des informations propres et à envoyer ou répondre à des messages. Un objet a un état   et un comportement  . L'état est l'ensemble des valeurs que détient l'objet. Le comportement   est l'ensemble des opérations (procédures ou fonctions), appelées méthodes   que l'objet peut réaliser. Par exemple, prenons un point p1 = (5,6) défini par ses coordonnées cartésiennes. L'état est décrit par les deux coordonnées 5 et 6 dans le plan. Le comportement est déplacer, distance, etc. On dit qu'un objet encapsule   des données (l'état) et des traitements sur ces données (le comportement) au sein d'une même entité.

La classe  regroupe les objets ayant même structure (même forme d'état) et même comportement. Par exemple, notre point p1 est défini dans une classe Point. La structure  est définie par un ensemble de variables d'instances . Par exemple, la structure du point p1 = (5,6) est formée de deux variables x et y. Le comportement  est décrit par un ensemble de méthodes. Une méthode  est une abstraction procédurale (procédure, fonction) définie par un profil  et un corps . Le profil comprend un nom de méthode, appelé sélecteur  de la méthode et des noms de variables en paramètres. Syntaxiquement, une méthode se présente comme suit :

selecteur et nom des arguments
  "commentaires décrivant la méthode"
  | noms de variables temporaires |

  instructions

Chaque objet détient les valeurs de ses variables d'instances mais son comportement est situé au niveau de sa classe. L'objet est relié à sa classe par la relation d'instanciation  Nous avons donc shématiquement l'implantation suivante :

instanceRelation d'instanciation du point p1

Le point p1 a pour coordonnées x = 5 et y = 6. Ses méthodes sont regroupées dans la classe Point avec qui il est relié par une relation d'instanciation. L'état d'un objet est alors défini par la valeur de ses variables d'instance. C'est ce qui permet de comparer deux objets d'une même classe. En fait, chaque objet est unique dans le système : l'objet possède une identité .  

La classe représente à la fois l'ensemble de ses instances et un modèle des instances. Dans le comportement on distingue les méthodes applicables aux objets, ce sont les méthodes d'instance , des méthodes applicables à la classe elle-même, appelées méthodes de classe . Les méthodes de classe servent notamment à créer les objets de la classe. On dit qu'un objet est instancié par la classe.   Les termes instance   et objet sont synonymes. Une classe qui n'a pas de méthode d'instanciation est dite classe abstraite . De même, une méthode dont la sémantique n'est pas définie est dite méthode abstraite  .


next up previous contents index
Next: Envoi de message Up: Le modèle à objets Previous: Concepts et principes de

Pascal Andre
Tue Jun 8 12:20:44 GMT 1999