Ruby/Classes et objets

Début de la boite de navigation du chapitre
Classes et objets
Icône de la faculté
Chapitre no 9
Leçon : Ruby
Chap. préc. :Boucles
Chap. suiv. :Méthodes (suite)
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Ruby : Classes et objets
Ruby/Classes et objets
 », n'a pu être restituée correctement ci-dessus.

Les objets

modifier


Avant d'aller plus loin, voici les types des objets "standards" que vous avez manipulés depuis le début du cours sans le savoir :

  • Integer pour les entiers
  • Float pour les flottants
  • String pour les chaînes de caractères
  • Array pour les tableaux
  • Hash pour les hachages
  • Method pour les méthodes
  • etc.

Création d'objet

modifier

Comme vous l'avez déjà vu, les objets de type simple comme les nombres (entiers ou flottants), les chaînes de caractères, les tableaux, etc. sont créés par simple déclaration.

Pour tous les autres (ceux que vous avez vous-mêmes définis), on utilise la méthode new. Par exemple, pour créer un objet de type Ordinateur (en supposant que ce type soit défini), voici ce qu’il faut faire :

Début de l'exemple
Fin de l'exemple


La méthode new permet de créer l'objet, on parlera aussi d'instancier un objet. Elle est appliquée à la classe de l'objet. L'objet nouvellement créé sera de type Ordinateur.

Les classes

modifier


Pour déclarer une classe quelconque, il faut procéder ainsi :

Début de l'exemple
Fin de l'exemple


Le mot-clé class débute la déclaration d'une classe et le mot-clé end y met fin.


Par la suite, les classes que nous créerons contiendront des variables et méthodes.

Réutilisation du code

modifier

Imaginons que vous vouliez créer un programme affichant une fenêtre contenant une image. Vous codez le tout sans problème : le nom de la fenêtre, ses dimensions, sa disposition et son contenu. Puis vos compétences en programmation augmentent et vous vous sentez aptes à créer un jeu de morpion en fenêtre. Seulement voilà : créer une fenêtre, vous savez le faire, vous l'avez d'ailleurs déjà fait un peu plus tôt.

C'est là que vous pouvez réutiliser le code existant : vous pourriez définir une classe Fenetre et vous servir d'elle à chaque fois que vous voulez créer une nouvelle fenêtre : de cette manière, on évite le code inutile et redondant.

L'encapsulation

modifier


Dans notre exemple : imaginons que notre class Fenetre soit dotée d'une variable couleur_fond. Plutôt que de modifier cette variable depuis l'extérieur de la classe, on définiera une méthode changer_couleur_fond contenant les instructions permettant d'accéder à la couleur de fond de la fenêtre, puis de la modifier. De cette manière, l'information de la couleur de fond de la fenêtre ne sera pas accessible et ne pourra donc pas être modifiée en dehors de cette méthode.