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