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