Skip to content
Related Articles

Related Articles

Improve Article
Instance Variables in Ruby
  • Last Updated : 17 Dec, 2019

There are four different types of variables in Ruby- Local variables, Instance variables, Class variables and Global variables. An instance variable in ruby has a name starting with @ symbol, and its content is restricted to whatever the object itself refers to. Two separate objects, even though they belong to the same class, are allowed to have different values for their instance variables.

These are some of the characteristics of Instance variables in Ruby:

  • Instance variable have the value nil before initialization.
  • All instance variables are private by default.
  • The instance variables of an object can only be accessed by the instance methods of that object.
  • The ruby instance variables do not need a declaration. This implies a flexible object structure.
  • Every instance variable is dynamically appended to an object when it is first referenced.
  • An instance variable belongs to the object itself (each object has its own instance variable of that particular class)
  • One instance object can alter the values of its instance variables without modifying any other instance.
  • An Instance variable can be used by several class methods except when the method is considered to be static.

Example #1:




# Ruby program to illustrate instance variables using constructor
  
class Geek
  
       # constructor
       def initialize() 
   
         # instance variable     
         @geekName = "R2J"
       end   
  
       # defining method displayDetails
       def displayDetails() 
           puts "Geek name is #@geekName"
       end    
  
end
  
# creating an object of class Geeks
obj=Geek.new()
  
# calling the instance methods of class Geeks
obj.displayDetails()

Output:

Geek name is R2J

In the above program, geekName is the instance variable initialized using a constructor and is accessed by the instance method displayDetails() of the class Geek.



Let’s look at another program to illustrate the use of instance variables in Ruby:

Example #2:




# Ruby program to illustrate instance variables using instance methods
   
class Geek
   
       # defining instance method getAge
       def getAge(n)
             
         # instance variable     
         @geekAge = n
       end  
          
       # defining instance method incrementAge
       def incrementAge() 
           @geekAge +=1
       end
   
       # defining instance method displayDetails
       def displayDetails() 
           puts "Geek age is #@geekAge"
       end   
   
end
   
# creating an object of class Geeks
obj = Geek.new
   
# calling the instance methods of class Geeks
obj.getAge(20)
obj.displayDetails()
obj.incrementAge()
obj.displayDetails()

Output:

Geek age is 20
Geek age is 21

In the above program, geekAge is the instance variable initialized in the instance method getAge(), here geekAge is also accessed by other two instance methods incrementAge() and displayDetails() in which incrementAge() method modifies the value of geekAge and displayDetails() is used to display the value of geekAge.




My Personal Notes arrow_drop_up
Recommended Articles
Page :