Contactez-nous

Comment définir une méthode d'instance (un comportement)

Apprenez à définir des méthodes d'instance en Ruby pour donner des comportements et des actions à vos objets. Ce guide pratique vous montre comment créer un code interactif et utile.

Qu'est-ce qu'une méthode d'instance ?

Maintenant que nos objets ont une 'mémoire' (les variables d'instance), il est temps de leur donner des 'capacités'. Une méthode d'instance est une fonction qui appartient à une instance d'une classe. Elle définit un comportement, une action que l'objet peut effectuer.

Si les variables d'instance sont les noms qui décrivent l'objet (son état), les méthodes d'instance sont les verbes qui décrivent ce qu'il peut faire. Pour une classe Voiture, @couleur est un état, tandis que demarrer() est un comportement.

Ces méthodes se définissent à l'intérieur du bloc class...end en utilisant la syntaxe que vous connaissez déjà : les mots-clés def et end. La grande différence est que, définies à l'intérieur d'une classe, elles ne sont pas des fonctions globales mais des capacités liées à chaque objet créé à partir de cette classe.

Exemple pratique : donner la parole à notre classe `Cat`

Pour utiliser cette nouvelle capacité, nous devons d'abord créer une instance. Ensuite, nous pouvons appeler la méthode sur cette instance spécifique en utilisant la notation 'point' (.). Vous ne pouvez pas appeler Cat.meow car le plan (la classe) ne peut pas miauler, seul un chat réel (une instance) le peut.

Comment une méthode interagit-elle avec l'état de son objet ?

Maintenant, regardez comment le même appel de méthode produit des résultats différents selon l'instance. Chaque chat utilise son propre nom, car chaque objet a son propre état.

Conseil d'expert : le rôle du mot-clé `self`

Vous vous demandez peut-être comment la méthode introduce sait qu'elle doit utiliser le @name de felix et pas celui de garfield. La réponse est le mot-clé implicite self.

A l'intérieur de n'importe quelle méthode d'instance, self est une variable spéciale qui fait référence à l'instance actuelle, c'est-à-dire l'objet sur lequel la méthode a été appelée. Quand vous écrivez @name, Ruby l'interprète en réalité comme self.@name. De même, quand vous appelez felix.introduce, à l'intérieur de la méthode introduce, self est égal à felix.

La plupart du temps, Ruby vous permet d'omettre self. pour accéder aux variables d'instance, ce qui rend le code plus concis. Cependant, comprendre son existence est fondamental. Il devient parfois obligatoire de l'utiliser, notamment pour appeler une autre méthode du même objet afin de lever une ambiguïté avec une variable locale. Ces méthodes d'instance constituent l'interface publique de votre objet, la manière dont le reste de votre code est autorisé à interagir avec lui.