Estudo de caso da turma de Ruby

Para o seu estudo de caso, você criará uma classe Ruby chamada Cliente e declarará dois métodos -

  • display_details - Este método irá exibir os detalhes do cliente.

  • total_no_of_customers - Este método exibirá o número total de clientes criados no 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

O método display_details contém três instruções puts , exibindo o ID do cliente, o nome do cliente e o endereço do cliente. A instrução puts exibirá o texto ID do cliente seguido pelo valor da variável @cust_id em uma única linha da seguinte forma -

puts "Customer id #@cust_id"

Quando você deseja exibir o texto e o valor da variável de instância em uma única linha, você precisa preceder o nome da variável com o símbolo hash (#) na instrução puts. O texto e a variável de instância junto com o símbolo hash (#) devem ser colocados entre aspas duplas.

O segundo método, total_no_of_customers, é um método que contém a variável de classe @@ no_of_customers. A expressão @@ no_of_ customers + = 1 adiciona 1 à variável no_of_customers cada vez que o método total_no_of_customers é chamado. Dessa forma, você sempre terá o número total de clientes na variável de classe.

Agora, crie dois clientes da seguinte maneira -

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

Aqui, criamos dois objetos da classe Cliente como cust1 e cust2 e passamos os parâmetros necessários com o novo método. O método initialize é invocado e as propriedades necessárias do objeto são inicializadas.

Uma vez que os objetos são criados, você precisa chamar os métodos da classe usando os dois objetos. Se você deseja chamar um método ou qualquer membro de dados, você escreve o seguinte -

cust1.display_details()
cust1.total_no_of_customers()

O nome do objeto sempre deve ser seguido por um ponto, que por sua vez é seguido pelo nome do método ou qualquer membro de dados. Vimos como chamar os dois métodos usando o objeto cust1. Usando o objeto cust2, você pode chamar os dois métodos conforme mostrado abaixo -

cust2.display_details()
cust2.total_no_of_customers()

Salve e execute o código

Agora, coloque todo esse código-fonte no arquivo main.rb da seguinte maneira -

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

Agora, execute este programa da seguinte maneira -

$ ruby main.rb

Isso produzirá o seguinte 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