An Example for the difference between class and instance variable in Ruby

Create a ruby class called Test

class Test
   def cv=(value)
     @@cv = value
     end
   def cb=(value)
     @cb = value
     end
   def cv
     @@cv
     end
   def cb
     @cb
     end
   end
 => nil 

Then create an instance of this class a and b

Try accessing the class variable without initializing it.

a = Test.new
 => # 
 a.cv
NameError: uninitialized class variable @@cv in Test
    from (irb):9:in `cv'
    from (irb):16

Initialize the class variable with some data. And add values to the instance variable of a and b.

a.cv=45
 => 45 

a.cv
 => 45 
b = Test.new
 => # 
b.cv
 => 45 
a.cb = 34
 => 34 
a.cb
 => 34 
b.cb
 => nil 
b.cb = 90
 => 90 
b.cb
 => 90 

Author: Abhilash

Hey! My name is Abhilash - A Ruby developer for years, specialised on web programming, working as a freelancer. Mainly working on Ruby On Rails platform since 2010. This blog is about Ruby, Ruby On Rails and other subjects that I work. You can contact me here: abhilash.amballur@gmail.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s