Ruby - Classes et objets

Ruby est un parfait langage de programmation orienté objet. Les caractéristiques du langage de programmation orienté objet comprennent -

  • Encapsulation de données
  • Abstraction de données
  • Polymorphism
  • Inheritance

Ces fonctionnalités ont été discutées dans le chapitre Ruby orienté objet .

Un programme orienté objet implique des classes et des objets. Une classe est le plan à partir duquel des objets individuels sont créés. En termes orientés objet, nous disons que votre vélo est une instance de la classe d'objets connus sous le nom de vélos.

Prenons l'exemple de n'importe quel véhicule. Il comprend les roues, la puissance et la capacité du réservoir de carburant ou d'essence. Ces caractéristiques forment les données membres de la classe Véhicule. Vous pouvez différencier un véhicule de l'autre à l'aide de ces caractéristiques.

Un véhicule peut également avoir certaines fonctions, telles que l'arrêt, la conduite et la vitesse. Même ces fonctions forment les données membres de la classe Véhicule. Vous pouvez donc définir une classe comme une combinaison de caractéristiques et de fonctions.

Un véhicule de classe peut être défini comme -

Class Vehicle {

   Number no_of_wheels
   Number horsepower
   Characters type_of_tank
   Number Capacity
   Function speeding {
   }
   
   Function driving {
   }
   
   Function halting {
   }
}

En attribuant des valeurs différentes à ces membres de données, vous pouvez former plusieurs instances de la classe Vehicle. Par exemple, un avion a trois roues, une puissance de 1 000 chevaux, du carburant comme type de réservoir et une capacité de 100 litres. De la même manière, une voiture a quatre roues, une puissance de 200 chevaux, l'essence comme type de réservoir, et une capacité de 25 litres.

Définition d'une classe dans Ruby

Pour implémenter la programmation orientée objet à l'aide de Ruby, vous devez d'abord apprendre à créer des objets et des classes dans Ruby.

Une classe dans Ruby commence toujours par la classe de mot-clé suivie du nom de la classe. Le nom doit toujours être en majuscules. La classe Client peut être affichée comme -

class Customer
end

Vous terminez une classe en utilisant le mot-clé end . Tous les membres de données de la classe se trouvent entre la définition de classe et le mot clé end .

Variables dans une classe Ruby

Ruby fournit quatre types de variables -

  • Local Variables- Les variables locales sont les variables définies dans une méthode. Les variables locales ne sont pas disponibles en dehors de la méthode. Vous verrez plus de détails sur la méthode dans le chapitre suivant. Les variables locales commencent par une lettre minuscule ou _.

  • Instance Variables- Les variables d'instance sont disponibles dans toutes les méthodes pour une instance ou un objet particulier. Cela signifie que les variables d'instance changent d'objet en objet. Les variables d'instance sont précédées du signe arobase (@) suivi du nom de la variable.

  • Class Variables- Les variables de classe sont disponibles sur différents objets. Une variable de classe appartient à la classe et est une caractéristique d'une classe. Ils sont précédés du signe @@ et suivis du nom de la variable.

  • Global Variables- Les variables de classe ne sont pas disponibles dans toutes les classes. Si vous souhaitez avoir une seule variable, disponible dans toutes les classes, vous devez définir une variable globale. Les variables globales sont toujours précédées du signe dollar ($).

Exemple

À l'aide de la variable de classe @@ no_of_customers, vous pouvez déterminer le nombre d'objets en cours de création. Cela permet de dériver le nombre de clients.

class Customer
   @@no_of_customers = 0
end

Création d'objets dans Ruby à l'aide d'une nouvelle méthode

Les objets sont des instances de la classe. Vous allez maintenant apprendre à créer des objets d'une classe dans Ruby. Vous pouvez créer des objets dans Ruby en utilisant la méthode new de la classe.

La méthode new est un type de méthode unique, qui est prédéfini dans la bibliothèque Ruby. La nouvelle méthode appartient aux méthodes de classe .

Voici l'exemple pour créer deux objets cust1 et cust2 de la classe Customer -

cust1 = Customer. new
cust2 = Customer. new

Ici, cust1 et cust2 sont les noms de deux objets. Vous écrivez le nom de l'objet suivi du signe égal à (=) après lequel le nom de la classe suivra. Ensuite, l'opérateur point et le mot-clé new suivront.

Méthode personnalisée pour créer des objets Ruby

Vous pouvez passer des paramètres à la méthode new et ces paramètres peuvent être utilisés pour initialiser des variables de classe.

Lorsque vous prévoyez de déclarer la nouvelle méthode avec des paramètres, vous devez déclarer la méthode initialize au moment de la création de la classe.

La méthode initialize est un type spécial de méthode, qui sera exécutée lorsque la nouvelle méthode de la classe est appelée avec des paramètres.

Voici l'exemple pour créer une méthode d'initialisation -

class Customer
   @@no_of_customers = 0
   def initialize(id, name, addr)
      @cust_id = id
      @cust_name = name
      @cust_addr = addr
   end
end

Dans cet exemple, vous déclarez la méthode initialize avecid, name, et addren tant que variables locales. Ici, def et end sont utilisés pour définir une méthode Ruby initialize . Vous en apprendrez plus sur les méthodes dans les chapitres suivants.

Dans la méthode initialize , vous transmettez les valeurs de ces variables locales aux variables d'instance @cust_id, @cust_name et @cust_addr. Ici, les variables locales contiennent les valeurs transmises avec la nouvelle méthode.

Maintenant, vous pouvez créer des objets comme suit -

cust1 = Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2 = Customer.new("2", "Poul", "New Empire road, Khandala")

Fonctions membres dans la classe Ruby

Dans Ruby, les fonctions sont appelées méthodes. Chaque méthode d'une classe commence par le mot-clé def suivi du nom de la méthode.

Le nom de la méthode toujours préféré dans lowercase letters. Vous terminez une méthode dans Ruby en utilisant le mot-clé end .

Voici l'exemple pour définir une méthode Ruby -

class Sample
   def function
      statement 1
      statement 2
   end
end

Ici, l' instruction 1 et l' instruction 2 font partie du corps de la fonction de méthode à l'intérieur de la classe Sample. Ces instructions peuvent être n'importe quelle instruction Ruby valide. Par exemple, nous pouvons mettre une méthode met pour imprimer Hello Ruby comme suit -

class Sample
   def hello
      puts "Hello Ruby!"
   end
end

Maintenant, dans l'exemple suivant, créez un objet de la classe Sample et appelez la méthode hello et voyez le résultat -

#!/usr/bin/ruby

class Sample
   def hello
      puts "Hello Ruby!"
   end
end

# Now using above class to create objects
object = Sample. new
object.hello

Cela produira le résultat suivant -

Hello Ruby!

Étude de cas simple

Voici une étude de cas si vous souhaitez vous entraîner davantage avec la classe et les objets.

Étude de cas de la classe Ruby