Ruby Class Case Study
-- Learning not just technology, but dreams!
- Home
- HTML
- JavaScript
- CSS
- Vue
- React
- Python3
- Java
- C
- C++
- C#
- AI
- Go
- SQL
- Linux
- VS Code
- Bootstrap
- Git
- Local Bookmarks
Ruby Tutorial
Ruby Tutorial Ruby Introduction Ruby Environment Ruby Installation - Linux Ruby Installation - Windows Ruby Chinese Encoding Ruby Command Line Options Ruby Environment Variables Ruby Syntax Ruby Data Types Ruby Classes and Objects Ruby Class Case Study Ruby Variables Ruby Operators Ruby Comments Ruby Conditional Statements Ruby Loops Ruby Methods Ruby Blocks Ruby Modules Ruby Strings Ruby Arrays Ruby Hashes Ruby Date & Time Ruby Ranges Ruby Iterators Ruby File I/O Ruby File Class and Methods Ruby Dir Class and Methods Ruby Exceptions
Ruby Advanced Tutorial
Ruby Object Oriented Ruby Regular Expressions Ruby Database Access - DBI Tutorial Ruby Mysql Ruby CGI Programming Ruby CGI Methods Ruby CGI Cookie Ruby CGI Session Ruby Sending Email - SMTP Ruby Socket Programming Ruby XML, XSLT and XPath Tutorial Ruby Web Service Ruby Multithreading Ruby JSON Ruby RubyGems
Ruby Class Case Study
We will now create a Ruby class named Customer, declaring two methods:
- display_details: This method is used to display the customer's details.
- total_no_of_customers: This method is used to display the total number of customers created in the system.
Example
#!/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
The display_details method contains three puts statements, displaying the customer ID, customer name, and customer address. 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 (#) before the variable name in the puts statement. The text and the instance variable with the symbol (#) should be enclosed in double quotes.
The second method, total_no_of_customers, contains the class variable @@no_of_customers. The expression @@no_of_customers += 1 increments the variable no_of_customers by 1 each time the method total_no_of_customers is called. This way, you get the total number of customers in the class variable.
Now, let us create two customers as follows:
cust1 = Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2 = Customer.new("2", "Poul", "New Empire road, Khandala")
Here, we have created two objects of the Customer class, cust1 and cust2, and passed the necessary parameters to the 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 the two objects to call the methods of the class. 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 dot, then the method name or data member. We have seen how to call the 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:
Example
#!/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
# 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()
Next, run the program as follows:
$ ruby main.rb
This will produce the following result:
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
YouTip