Classes et objets Ruby


Ruby est un langage de programmation orienté objet parfait. Les fonctionnalités des langages de programmation orientés objet incluent :

  • Encapsulation des données

  • Abstraction des données

  • Propriétés du polymorphisme

  • Héritage

Ces fonctionnalités seront abordées dans Ruby orienté objet.

Un programme orienté objet impliquant des classes et des objets. Les classes sont des plans pour la création d'objets individuels. En termes orientés objet, votre vélo est une instance de la classe Bicycle.

Prenons un véhicule comme exemple, il comprend les roues, la puissance, la capacité du réservoir de carburant ou d'essence. Ces propriétés forment les données membres de la classe Vehicle. Grâce à ces attributs, vous pouvez distinguer un véhicule des autres véhicules.

Les véhicules peuvent également contenir des fonctions spécifiques, telles que l'arrêt, la conduite et l'excès de vitesse. Ces fonctions forment les données membres de la classe Vehicle. Par conséquent, vous pouvez définir une classe comme une combinaison de propriétés et de fonctions.

La classe Vehicle est définie comme suit :

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

Vous pouvez créer différentes instances de la classe Vehicle en attribuant différentes valeurs à ces données membres. Par exemple, un avion a trois roues, 1 000 chevaux et un réservoir de carburant d’une capacité de 100 litres. De la même manière, une voiture a quatre roues, 200 chevaux et un réservoir d’essence d’une capacité de 25 litres.

Définir des classes dans Ruby

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

En Ruby, une classe commence toujours par le mot-clé class suivi du nom de la classe. La première lettre du nom de la classe doit être en majuscule. La classe Client ressemble à ceci :

class Customer
end

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

Variables dans les classes Ruby

Ruby fournit quatre types de variables :

  • Variables locales : Les variables locales sont des variables définies dans méthodes. Les variables locales ne sont pas disponibles en dehors des méthodes. Dans les chapitres suivants, vous verrez plus de détails sur la méthode. Les variables locales commencent par une lettre minuscule ou _.

  • Variables d'instance : Les variables d'instance peuvent être utilisées dans n'importe quelle instance ou méthode spécifique dans un objet. Cela signifie que les variables d'instance peuvent changer d'un objet à l'autre. Les variables d'instance placent le symbole (@) avant le nom de la variable.

  • Variables de classe : Les variables de classe peuvent être utilisées sur différents objets. Les variables de classe appartiennent à la classe et sont un attribut de la classe. Les variables de classe placent le symbole (@@) avant le nom de la variable.

  • Variables globales : Les variables de classe ne peuvent pas être utilisées entre les classes. Si vous souhaitez disposer d'une variable pouvant être utilisée dans plusieurs classes, vous devez définir une variable globale. Les variables globales commencent toujours par un signe dollar ($).

Instance

À l'aide de la variable de classe @@no_of_customers, vous pouvez déterminer le nombre d'objets qui ont été créés et ainsi déterminer le nombre de clients.

class Customer
   @@no_of_customers=0
end

Créez des objets dans Ruby en utilisant la méthode new

Les objets sont des instances de classes. Vous allez maintenant apprendre à créer des objets de classes dans Ruby. Dans Ruby, vous créez des objets en utilisant la méthode de classe new. La

Méthode new est une méthode unique, prédéfinie dans la bibliothèque Ruby. La nouvelle méthode appartient à la méthode classe .

L'exemple suivant crée deux objets, cust1 et cust2, de classe Customer :

cust1 = Customer. new
cust2 = Customer. new

Ici, cust1 et cust2 sont les noms des deux objets. Le nom de l'objet est suivi d'un signe égal (=), qui est suivi du nom de la classe, puis de l'opérateur point et du mot-clé new.

Méthodes personnalisées pour créer des objets Ruby

Vous pouvez transmettre des paramètres à la méthode new qui peut être utilisée pour initialiser les variables de classe.

Lorsque vous souhaitez déclarer la méthode new avec des paramètres, vous devez déclarer la méthode initialize lors 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 méthode new d'une classe avec des paramètres est appelée.

L'exemple suivant crée la méthode initialize :

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 pouvez déclarer initialize avec id, name, addr comme variables locales Méthode. Ici, def et end sont utilisés pour définir la méthode Ruby initialize. Dans les chapitres suivants, vous apprendrez plus de détails sur la méthode.

Dans la méthode initialize, passez les valeurs de ces variables locales aux variables d'instance @cust_id, @cust_name et @cust_addr. Ici, la valeur de la variable locale est transmise avec la nouvelle méthode.

Vous pouvez maintenant créer des objets comme celui-ci :

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

Fonctions membres dans les classes Ruby

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

Les noms de méthodes commencent toujours par des lettres minuscules. En Ruby, vous pouvez terminer une méthode en utilisant le mot-clé end.

L'exemple suivant définit une méthode Ruby :

class Sample
   def function
      statement 1
      statement 2
   end
end

Ici, instruction 1 et instruction 2 sont des méthodes au sein de la classe Samplefunction est un composant du corps. Ces instructions peuvent être n'importe quelle instruction Ruby valide. Par exemple, nous pouvons utiliser la méthode puts pour afficher Hello Ruby comme suit :

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

L'exemple suivant créera un objet de classe Sample et appellera bonjourMéthode :

#!/usr/bin/ruby

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

# 使用上面的类来创建对象
object = Sample. new
object.hello

Cela produira le résultat suivant :

Hello Ruby!

Etude de cas simple

Si vous souhaitez en faire plus sur les classes et les objets Pour les exercices, ici est une étude de cas :

Cas de classe Ruby