Ruby is a pure Object Oriented Programming Language. An object-oriented program consists of
object is an entity that serves as a container for data and also controls access to the data.
class is like a blueprint that allows you to create objects and to create methods that relate to those objects. For example, you might use a Shape class to make different shapes like Rectangle, Square, Circle, and so on. An
object is an instance of a
There are many classes in
Ruby. Not all the classes are included in this Hierarchy. Class Basic Object is the superclass of all the classes.
We have set the local variable val to be a string. When we check the class of val, by calling the .class method, it tells us that the class of val is String. Then, when we checked the superclass of String, by calling the .superclass method it tells us
Object, and so on.
The reason the last value is nil is because the class BasicObject has no superclass.
Defining Class in Ruby
A class in
Ruby starts with the keyword
class followed by the name of the class.
Creating Objects in Ruby
Objects in ruby are created using the method
new method belongs to the class Class.
obj1 = Shape.new
This is the syntax for creating object. Here obj1 is the object name and Shape is the class name.
Another example of Class:
In the above program we have created a class named Name.
initialize is special type of method which is called by the
new method in the object creation. The
initialize method accepts three arguments which is stored in the instance variables @first, @middle and @last whereas the variables first, middle and last are local variables. The
inspect method gives the information about the class name and list of instance variables and their values.
This is the output of the program:
Another example using to_s method:
to_s (to string) method allows us to display the state of the object. State refers to all the data that is being stored in the class objects.
The output of the program is :
When we change the last line of program to print obj1. Here we are literally printing the object, let’s see the output after this change :
So, when the object is printed, the
to_s method is called automatically. This method can be used to debug or test the code by displaying the state of the object at any particular time.
Ruby: Accessing Class and Object Attributes
We can also write methods to allow us to examine a single field or attribute of an object.
You have to define the method with the name of the attribute/field. Here we have created a method for the field first. The method is called using
The output of the program is :
Likewise, we can examine each attribute of the object. We can do this in another simple way.
The attributes can be examined by the following statement attr_Reader :first, :middle, :last. This method returns the values of the attributes of the object which is printed using
The output of the program is:
Making the attributes Writable
The attributes can be made writable / modified by the following statement:
attr_writer :first, :middle, :last
Here, we have modified the instance variables of the object obj1. The output of the program is :
Here, you can see that the first, middle and last values were modified and printed.