Bird
Raised Fist0
Rubyprogramming~10 mins

Instance methods in Ruby - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Instance methods
Create Object
↓
Call Instance Method
↓
Method Uses Object's Data
↓
Return or Print Result
↓
End
An instance method is called on an object and can use that object's data to perform actions or return values.
Execution Sample
Ruby
class Dog
  def bark
    "Woof!"
  end
end

dog = Dog.new
puts dog.bark
This code creates a Dog object and calls its instance method bark, which returns 'Woof!'.
Execution Table
StepActionObject StateMethod CalledOutput
1Define class Dog with method barkNo objects yetNoneNone
2Create dog object with Dog.newdog: instance of DogNoneNone
3Call dog.barkdog: instance of Dogbark"Woof!"
4Print output of dog.barkdog: instance of DogNoneWoof!
5End of programdog: instance of DogNoneNone
💡 Program ends after printing 'Woof!' from dog.bark method
Variable Tracker
VariableStartAfter Step 2After Step 3Final
dogundefinedDog instance createdDog instance unchangedDog instance unchanged
Key Moments - 2 Insights
Why do we call bark on dog and not on Dog class?
Instance methods belong to objects, not the class itself. The execution_table row 3 shows dog.bark calls bark on the dog object.
What does the bark method return?
The bark method returns the string "Woof!" as shown in execution_table row 3 and printed in row 4.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the output when dog.bark is called at step 3?
Adog object
Bnil
C"Woof!"
DError
💡 Hint
Check the Output column at step 3 in the execution_table
At which step is the dog object created?
AStep 2
BStep 3
CStep 1
DStep 4
💡 Hint
Look at the Action and Object State columns in the execution_table
If we add a method that uses dog’s data, when would that method be called?
AAfter calling dog.bark
BOnly on the dog object after it is created
CBefore creating the dog object
DOn the Dog class itself
💡 Hint
Instance methods work on objects, see concept_flow and execution_table steps
Concept Snapshot
Instance methods belong to objects.
Call them on an object, not the class.
They can use the object's data.
Syntax: def method_name inside class.
Call: object.method_name
Returns value or performs action.
Full Transcript
This example shows how instance methods work in Ruby. First, a class Dog is defined with an instance method bark that returns "Woof!". Then, a dog object is created using Dog.new. The instance method bark is called on this dog object, returning the string "Woof!" which is then printed. Instance methods belong to objects, so you call them on an instance like dog, not on the class Dog itself. The execution table traces each step: defining the class, creating the object, calling the method, printing the output, and ending the program. The variable tracker shows the dog variable starting undefined, then holding the Dog instance after creation, and unchanged after method calls. Key moments clarify why methods are called on objects and what the method returns. The visual quiz tests understanding of these steps and concepts. This helps beginners see how instance methods run step-by-step.

Practice

(1/5)
1.

What is an instance method in Ruby?

easy
A. A method that belongs to an object created from a class
B. A method that belongs to the class itself, not objects
C. A method that runs only once when the program starts
D. A method that cannot be called on any object

Solution

  1. Step 1: Understand what instance methods are

    Instance methods are defined inside a class and belong to objects created from that class.
  2. Step 2: Differentiate from class methods

    Class methods belong to the class itself, not to individual objects.
  3. Final Answer:

    A method that belongs to an object created from a class -> Option A
  4. Quick Check:

    Instance method = belongs to object [OK]
Hint: Instance methods belong to objects, not the class itself [OK]
Common Mistakes:
  • Confusing instance methods with class methods
  • Thinking instance methods run only once
  • Believing instance methods cannot be called on objects
2.

Which of the following is the correct way to define an instance method greet inside a Ruby class Person?

class Person
  ?
end
easy
A. def self.greet; puts 'Hello'; end
B. def greet; puts 'Hello'; end
C. def Person.greet; puts 'Hello'; end
D. def greet() puts 'Hello' end

Solution

  1. Step 1: Identify instance method syntax

    Instance methods are defined with def method_name inside the class without self..
  2. Step 2: Check options

    def greet; puts 'Hello'; end uses correct syntax. def self.greet; puts 'Hello'; end and def Person.greet; puts 'Hello'; end define class methods. def greet() puts 'Hello' end misses semicolons or line breaks, causing syntax issues.
  3. Final Answer:

    def greet; puts 'Hello'; end -> Option B
  4. Quick Check:

    Instance method = def method_name [OK]
Hint: Instance methods use def without self. [OK]
Common Mistakes:
  • Using self. which defines class methods
  • Omitting semicolons or line breaks incorrectly
  • Defining methods outside the class
3.

What will be the output of the following Ruby code?

class Dog
  def bark
    'Woof!'
  end
end

fido = Dog.new
puts fido.bark
medium
A. Dog
B. bark
C. Woof!
D. NoMethodError

Solution

  1. Step 1: Understand the class and method

    The class Dog has an instance method bark that returns the string 'Woof!'.
  2. Step 2: Trace the method call

    An object fido is created from Dog, then fido.bark calls the bark method, returning 'Woof!'.
  3. Final Answer:

    Woof! -> Option C
  4. Quick Check:

    Calling instance method returns 'Woof!' [OK]
Hint: Instance method returns its string when called on object [OK]
Common Mistakes:
  • Expecting method name instead of return value
  • Confusing class name with output
  • Thinking method is undefined
4.

Find the error in this Ruby code and select the fix that will make it work:

class Cat
  def meow
    puts 'Meow!'
  end
end

kitty = Cat.new
kitty.meow()
medium
A. Remove parentheses from kitty.meow() to kitty.meow
B. Change def meow to def self.meow
C. Add return before puts in method
D. No error; code works as is

Solution

  1. Step 1: Check method definition and call

    The method meow is defined correctly as an instance method and called on an object.
  2. Step 2: Verify syntax and usage

    Using parentheses in method call is allowed in Ruby, so kitty.meow() is valid.
  3. Final Answer:

    No error; code works as is -> Option D
  4. Quick Check:

    Parentheses optional in method calls [OK]
Hint: Parentheses optional in Ruby method calls [OK]
Common Mistakes:
  • Thinking parentheses cause errors
  • Confusing instance and class methods
  • Adding unnecessary return before puts
5.

Given the class below, what will puts user.full_name print?

class User
  def initialize(first, last)
    @first_name = first
    @last_name = last
  end

  def full_name
    "#{@first_name} #{@last_name}".upcase
  end
end

user = User.new('Jane', 'Doe')
hard
A. JANE DOE
B. Error: undefined method full_name
C. "Jane Doe"
D. Jane Doe

Solution

  1. Step 1: Understand instance variables and method

    The initialize method sets @first_name and @last_name. The full_name method returns their combination in uppercase.
  2. Step 2: Trace the method call

    Calling user.full_name returns "JANE DOE" because of the upcase method.
  3. Final Answer:

    JANE DOE -> Option A
  4. Quick Check:

    full_name returns uppercase full name [OK]
Hint: String interpolation with upcase changes output to uppercase [OK]
Common Mistakes:
  • Ignoring upcase method effect
  • Expecting original case output
  • Confusing string quotes in output
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard