Cas de classe Ruby
Ce qui suit créera une classe Ruby nommée Customer et déclarera deux méthodes :
display_details : Cette méthode est utilisée pour afficher les informations détaillées du client.
total_no_of_customers : Cette méthode est utilisée pour afficher le nombre total de clients créés dans le système. La méthode
#!/usr/bin/ruby class Customer @@no_of_customers=0 def initialize(id, name, addr) @cust_id=id @cust_name=name @cust_addr=addr end def display_details() puts "Customer id #@cust_id" puts "Customer name #@cust_name" puts "Customer address #@cust_addr" end def total_no_of_customers() @@no_of_customers += 1 puts "Total number of customers: #@@no_of_customers" end end
display_details contient trois instructions put pour afficher l'identifiant client, le nom du client et l'adresse du client. Parmi eux, l'instruction puts :
puts "Customer id #@cust_id"
affichera le texte Customer id et la valeur de la variable @cust_id sur une seule ligne.
Lorsque vous souhaitez afficher le texte et la valeur d'une variable d'instance sur une seule ligne, vous devez placer le symbole (#) devant le nom de la variable dans l'instruction puts. Les variables de texte et d'instance portant le signe (#) doivent être marquées par des guillemets doubles.
La deuxième méthode, total_no_of_customers, contient la variable de classe @@no_of_customers. Expression @@no_of_ customer+=1 augmente la variable no_of_customers de 1 à chaque fois que la méthode total_no_of_customers est appelée. De cette façon, vous obtiendrez le nombre total de clients dans la variable de classe.
Créez maintenant deux clients comme indiqué ci-dessous :
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya") cust2=Customer.new("2", "Poul", "New Empire road, Khandala")
Ici, nous avons créé deux objets de la classe Customer, cust1 et cust2 et avons transmis les paramètres nécessaires à la nouvelle méthode. Lorsque la méthode initialize est appelée, les propriétés nécessaires de l'objet sont initialisées.
Une fois l'objet créé, vous devez utiliser deux objets pour appeler les méthodes de la classe. Si vous souhaitez appeler une méthode ou n'importe quel membre de données, vous pouvez écrire le code comme ceci :
cust1.display_details() cust1.total_no_of_customers()
Le nom de l'objet est toujours suivi d'un point, suivi du nom de la méthode ou du membre de données. Nous avons vu comment appeler deux méthodes en utilisant l'objet cust1. En utilisant l'objet cust2, vous pouvez également appeler les deux méthodes comme indiqué ci-dessous :
cust2.display_details() cust2.total_no_of_customers()
Enregistrez et exécutez le code
Maintenant, mettez tout le code source dans le fichier main.rb comme indiqué ci-dessous Affichage :
#!/usr/bin/ruby class Customer @@no_of_customers=0 def initialize(id, name, addr) @cust_id=id @cust_name=name @cust_addr=addr end def display_details() puts "Customer id #@cust_id" puts "Customer name #@cust_name" puts "Customer address #@cust_addr" end def total_no_of_customers() @@no_of_customers += 1 puts "Total number of customers: #@@no_of_customers" end end # 创建对象 cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya") cust2=Customer.new("2", "Poul", "New Empire road, Khandala") # 调用方法 cust1.display_details() cust1.total_no_of_customers() cust2.display_details() cust2.total_no_of_customers()
Ensuite, exécutez le programme comme indiqué ci-dessous :
$ ruby main.rb
Cela produira les résultats suivants :
Customer id 1 Customer name John Customer address Wisdom Apartments, Ludhiya Total number of customers: 1 Customer id 2 Customer name Poul Customer address New Empire road, Khandala Total number of customers: 2