Previous: Les classes Up: Les différents objets

Les méthodes

Les méthodes sont les façons de répondre aux messages. Elles ont la forme suivante :

selecteur et arguments

"commentaire entre double quotes"

| variables temporaires entre barres verticales |

expressions Smalltalk séparées par des points.

Ce schéma de définition des méthodes apparaît dès que vous sélectionnez un protocole. Les protocoles sont aux méthodes ce que les catégories sont aux classes : des ensembles pour les organiser.

___________________________________________

Exercice 12 Dans la classe Object, sélectionnez le protocole printing. Puis regardez le code des méthodes qui apparaissent.

Indications ...

___________________________________________

Trois techniques de navigation sont fondamentales pour trouver de l'information, comprendre le sens d'un message. Ces techniques permettent :

  1. De savoir quelles classes savent répondre à un message. Ou encore, quelles sont les différentes façons de répondre à un message : les implementors
  2. De savoir quels sont les messages qui utilisent une méthode donnée : les senders
  3. De savoir quelles sont les façons de répondre aux messages qui sont utilisés par une méthode : les messages

___________________________________________

Exercice 13 Pour mettre en pratique ces outils de navigation,

  1. Cherchez les classes des objets qui savent répondre à ifTrue: ?
  2. Cherchez les classes des objets qui savent répondre à whileTrue ? Comment whileTrue fonctionne-t-il ?
  3. Quels sont les méthodes qui utilisent la méthode x:y: ?

___________________________________________

On distingue deux types de méthodes :

  1. les méthodes d'instance
  2. les méthodes de classe

Les premières indiquent comment les instances d'une classe répondent aux messages. Les secondes sont des messages envoyés aux classes elle-mêmes, elles servent à la création d'instance, à l'initialisation des classes, ...

___________________________________________

Exercice 14 La méthode de classe la plus utilisée est new, cherchez ses différentes formes. La méthode la plus primitive, celle qui crée des instances dont les variables d'instances sont indéfinies ( nil), est basicNew

___________________________________________

___________________________________________

beugnard@enst-bretagne.fr