On 18 Feb 2009, at 18:42, Steve wrote:
> > Learning about instance variables and don't understand why the > instance variable "name" in the code example below is not visible > where as "title" is. Could someone explain this to me and why I hadto > use the "self.get_name()" method (which I don't understand since I > pulled it off the net) to get the value out of name? > Classes are objects in ruby and can have instance variables, so when you set @name = "Steve" where you have put it you're create an instance variable on the class rather than an instance variable on a particular instance of the class. Fred > Thanks > ------------------------------- > class InstanceVariables > @name = "Steve" > > def initialize() > @title = "Software Eng" > end > > def self.get_name > @name > end > > def get_name > self.class.get_name # Why can't I just return @name? > end > > def get_title > @title > end > > def show_vars > puts "name: #...@name, title: #...@title" # name is not set, at least > that I can tell. > end > end > ------------------------ > obj1 = InstanceVariables.new > puts obj1.get_name() > puts obj1.get_title() > obj1.show_vars() > ------------------------ > Steve > Software Eng > name: , title: Software Eng > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

