Étude de cas de la classe Ruby

Pour votre étude de cas, vous allez créer une classe Ruby appelée Customer et vous déclarerez deux méthodes -

  • display_details - Cette méthode affichera les détails du client.

  • total_no_of_customers - Cette méthode affichera le nombre total de clients créés dans le système.

#!/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

La display_details méthode contient trois puts déclarations, affichant l'ID client, le nom du client et l'adresse du client. L'instruction put affichera le texte Customer id suivi de la valeur de la variable @cust_id sur une seule ligne comme suit -

puts "Customer id #@cust_id"

Lorsque vous souhaitez afficher le texte et la valeur de la variable d'instance sur une seule ligne, vous devez faire précéder le nom de la variable du symbole dièse (#) dans l'instruction put. Le texte et la variable d'instance ainsi que le symbole de hachage (#) doivent être placés entre guillemets doubles.

La deuxième méthode, total_no_of_customers, est une méthode qui contient la variable de classe @@ no_of_customers. L'expression @@ no_of_ customers + = 1 ajoute 1 à la variable no_of_customers à chaque fois que la méthode total_no_of_customers est appelée. De cette façon, vous aurez toujours le nombre total de clients dans la variable de classe.

Maintenant, créez deux clients comme suit -

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

Ici, nous créons deux objets de la classe Customer comme cust1 et cust2 et passons les paramètres nécessaires avec la nouvelle méthode. La méthode initialize est appelée et les propriétés nécessaires de l'objet sont initialisées.

Une fois les objets créés, vous devez appeler les méthodes de la classe en utilisant les deux objets. Si vous souhaitez appeler une méthode ou un membre de données, vous écrivez ce qui suit -

cust1.display_details()
cust1.total_no_of_customers()

Le nom de l'objet doit toujours être suivi d'un point, qui est à son tour suivi du nom de la méthode ou de tout membre de données. Nous avons vu comment appeler les deux méthodes en utilisant l'objet cust1. En utilisant l'objet cust2, vous pouvez appeler les deux méthodes comme indiqué ci-dessous -

cust2.display_details()
cust2.total_no_of_customers()

Enregistrer et exécuter le code

Maintenant, mettez tout ce code source dans le fichier main.rb comme suit -

#!/usr/bin/ruby

class Customer
   @@no_of_customers = 0
   def initialize(id, name, addr)
      @@no_of_customers += 1
      @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()
      puts "Total number of customers: #@@no_of_customers"
   end
end

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

# Call Methods
cust1.display_details()
cust1.total_no_of_customers()
cust2.display_details()
cust2.total_no_of_customers()

cust3 = Customer.new("3", "Raghu", "Madapur, Hyderabad")
cust4 = Customer.new("4", "Rahman", "Akkayya palem, Vishakhapatnam")
cust4.total_no_of_customers()

Maintenant, exécutez ce programme comme suit -

$ ruby main.rb

Cela produira le résultat suivant -

Customer id 1
Customer name John
Customer address Wisdom Apartments, Ludhiya
Total number of customers: 2
Customer id 2
Customer name Poul
Customer address New Empire road, Khandala
Total number of customers: 2
Total number of customers: 4