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
-~----------~----~----~----~------~----~------~--~---

Reply via email to