Ruby class case
The following will create a Ruby class named Customer and declare two methods:
display_details: This method is used to display customer details information.
total_no_of_customers: This method is used to display the total number of customers created in the system.
#!/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 The method contains three puts statements that display the customer ID, customer name, and customer address. Among them, the puts statement:
puts "Customer id #@cust_id"
will display the text Customer id and the value of the variable @cust_id on a single line.
When you want to display the text and value of an instance variable on a single line, you need to place the symbol (#) in front of the variable name in the puts statement. Text and instance variables with the sign (#) should be marked with double quotes.
The second method, total_no_of_customers, contains the class variable @@no_of_customers. Expression @@no_of_ customers+=1 increases the variable no_of_customers by 1 each time the method total_no_of_customers is called. This way you will get the total number of customers in the class variable.
Now create two customers as shown below:
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya") cust2=Customer.new("2", "Poul", "New Empire road, Khandala")
Here, we have created two objects of Customer class, cust1 and cust2 and passed necessary parameters to new method. When the initialize method is called, the necessary properties of the object are initialized.
Once the object is created, you need to use two objects to call the class's methods. If you want to call a method or any data member, you can write the code as follows:
cust1.display_details() cust1.total_no_of_customers()
The object name is always followed by a period, followed by the method name or data member. We have seen how to call two methods using the cust1 object. Using the cust2 object, you can also call the two methods as follows:
cust2.display_details() cust2.total_no_of_customers()
Save and execute the code
Now, put all the source code in the main.rb file as follows Display:
#!/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()
Next, run the program as shown below:
$ ruby main.rb
This will produce the following results:
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