class Basics
@var="instance variable 1"
@var1=0
def initialize()
@var1=1
end
def showMe()
@var="instance variable is initialized here.."
end
end
obj1= Basics.new
puts 'accessing instance variable b4 initializing it..'
puts "is nil ?"+ obj1.instance_variable_get(:@var).nil?.to_s
c= obj1.showMe()
puts "is instance var initialized: " + obj1.instance_variable_get(:@var).to_s
puts 'accessing instance variable: ' + obj1.instance_variable_get(:@var1).to_s
# You should not make this the default way you access instance variables as it violates encapsulation
# A better way is to define an accessor:
puts "+++++++++++++++++++++++++++++++++++++++++++"
class Hello
@var1
@var2=''
def method1
@hello = "venu"
@var1="val1"
@var2="val2"
end
attr_reader :hello
attr_reader :var2
end
h = Hello.new
puts "check for @hello value b4 initialization.."
p h.hello #nil
p h.method1 #def/method return last evaluated value
p h.hello #"venu" #accessing instance variable better way
puts h.var2 #accessing instance variable better way
Output:
accessing instance variable b4 initializing it..
is nil ?true
is instance var initialized: instance variable is initialized here..
accessing instance variable: 1
+++++++++++++++++++++++++++++++++++++++++++
check for @hello value b4 initialization..
nil
"val2"
"venu"
val2
++++++++++++++++++++++++++++++++++++++++=
http://stackoverflow.com/questions/12122736/access-instance-variable-from-outside-the-class
@var="instance variable 1"
@var1=0
def initialize()
@var1=1
end
def showMe()
@var="instance variable is initialized here.."
end
end
obj1= Basics.new
puts 'accessing instance variable b4 initializing it..'
puts "is nil ?"+ obj1.instance_variable_get(:@var).nil?.to_s
c= obj1.showMe()
puts "is instance var initialized: " + obj1.instance_variable_get(:@var).to_s
puts 'accessing instance variable: ' + obj1.instance_variable_get(:@var1).to_s
# You should not make this the default way you access instance variables as it violates encapsulation
# A better way is to define an accessor:
puts "+++++++++++++++++++++++++++++++++++++++++++"
class Hello
@var1
@var2=''
def method1
@hello = "venu"
@var1="val1"
@var2="val2"
end
attr_reader :hello
attr_reader :var2
end
h = Hello.new
puts "check for @hello value b4 initialization.."
p h.hello #nil
p h.method1 #def/method return last evaluated value
p h.hello #"venu" #accessing instance variable better way
puts h.var2 #accessing instance variable better way
Output:
accessing instance variable b4 initializing it..
is nil ?true
is instance var initialized: instance variable is initialized here..
accessing instance variable: 1
+++++++++++++++++++++++++++++++++++++++++++
check for @hello value b4 initialization..
nil
"val2"
"venu"
val2
++++++++++++++++++++++++++++++++++++++++=
http://stackoverflow.com/questions/12122736/access-instance-variable-from-outside-the-class
No comments:
Post a Comment