Estudio de caso de Ruby Class

Para su caso de estudio, creará una clase Ruby llamada Cliente y declarará dos métodos:

  • display_details : este método mostrará los detalles del cliente.

  • total_no_of_customers : este método mostrará el número total de clientes creados en el sistema.

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

El display_details método contiene tres puts declaraciones, mostrando el ID de cliente, el nombre del cliente y la dirección del cliente. La declaración de venta mostrará el texto ID de cliente seguido del valor de la variable @cust_id en una sola línea de la siguiente manera:

puts "Customer id #@cust_id"

Cuando desee mostrar el texto y el valor de la variable de instancia en una sola línea, debe anteponer el nombre de la variable con el símbolo de almohadilla (#) en la declaración de venta. El texto y la variable de instancia junto con el símbolo de almohadilla (#) deben ir entre comillas dobles.

El segundo método, total_no_of_customers, es un método que contiene la variable de clase @@ no_of_customers. La expresión @@ no_of_ customers + = 1 suma 1 a la variable no_of_customers cada vez que se llama al método total_no_of_customers. De esta forma, siempre tendrás el número total de clientes en la variable de clase.

Ahora, cree dos clientes de la siguiente manera:

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

Aquí, creamos dos objetos de la clase Customer como cust1 y cust2 y pasamos los parámetros necesarios con el nuevo método. Se invoca el método initialize y se inicializan las propiedades necesarias del objeto.

Una vez que se crean los objetos, debe llamar a los métodos de la clase utilizando los dos objetos. Si desea llamar a un método o cualquier miembro de datos, escriba lo siguiente:

cust1.display_details()
cust1.total_no_of_customers()

El nombre del objeto siempre debe ir seguido de un punto, que a su vez va seguido del nombre del método o de cualquier miembro de datos. Hemos visto cómo llamar a los dos métodos utilizando el objeto cust1. Usando el objeto cust2, puede llamar a ambos métodos como se muestra a continuación:

cust2.display_details()
cust2.total_no_of_customers()

Guardar y ejecutar el código

Ahora, ponga todo este código fuente en el archivo main.rb de la siguiente manera:

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

Ahora, ejecute este programa de la siguiente manera:

$ ruby main.rb

Esto producirá el siguiente resultado:

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