Ruby Ruby Objects and Classes Variables and Methods Variables and Methods

Eylon Cohen
Eylon Cohen
4,779 Points

instance varible

Hii, Didn't understand the methods in the answer:

def initialize (title) @title=title end def title @title end

a. the second line is assigning the global varible to a local variable? what is the importance of @? b. the second methode means: "when calling the method title (Which belongs only to the specific class, I would guess), return the local varible"? should be there a return or something?

Thank you!

class.rb
class Name
  def initialize (title)
    @title=title
  end
  def title 
    @title
  end

  def first_name
    "Metal"
  end

  def last_name
    "Robot"
  end
end

name=Name.new("Dr.")

1 Answer

Christopher McAnally
Christopher McAnally
2,941 Points

The @ means the variable is an "instance" variable. So every time you do:

Name.new 

You will be creating a new Name object and inside that object will be a title field. So in the second method here:

def initialize (title)
    @title=title
  end
  def title 
    @title
  end

You are returning the value of @title, or that specific name object's title. The initialize method sets @title with a starting value.