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