Bird
Raised Fist0
Rubyprogramming~10 mins

Self keyword behavior in Ruby - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to print the current object using self.

Ruby
puts [1]
Drag options to blanks, or click blank then click option'
Aself
Bthis
Cme
Dobject
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'this' or 'me' which are not Ruby keywords.
Trying to print an undefined variable instead of self.
2fill in blank
medium

Complete the method to return the class of the current object using self.

Ruby
def get_class
  [1].class
end
Drag options to blanks, or click blank then click option'
Athis
Bself
Cobject
Dme
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'this' or 'me' which are not valid in Ruby.
Calling class on an undefined variable.
3fill in blank
hard

Fix the error by replacing the blank with the correct keyword to call a method on the current object.

Ruby
def greet
  [1].say_hello
end
Drag options to blanks, or click blank then click option'
Aobject
Bthis
Cme
Dself
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'this' or 'me' which cause errors.
Omitting the receiver when explicit self is needed.
4fill in blank
hard

Fill the blank to define a class method using self.

Ruby
class Person
  def [1].greet
    puts "Hello!"
  end
end
Drag options to blanks, or click blank then click option'
Athis
Bme
Cself
Dobject
Attempts:
3 left
💡 Hint
Common Mistakes
Using instance method syntax instead of class method syntax.
Using invalid keywords like 'this' or 'me'.
5fill in blank
hard

Fill all three blanks to complete the code that prints the object id using self inside an instance method.

Ruby
class Item
  def print_id
    id = [1].[2]
    puts "ID: [3]"
  end
end
Drag options to blanks, or click blank then click option'
Aself
Bobject_id
C#{id}
Dthis
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'this' instead of 'self'.
Forgetting to use string interpolation to print the variable.

Practice

(1/5)
1. What does the self keyword represent inside an instance method in Ruby?
easy
A. The superclass of the current class
B. The class itself
C. A global variable
D. The current instance (object) of the class

Solution

  1. Step 1: Understand instance methods context

    Inside an instance method, the code runs for a specific object created from the class.
  2. Step 2: Identify what self points to

    In this context, self refers to that specific object (instance) running the method.
  3. Final Answer:

    The current instance (object) of the class -> Option D
  4. Quick Check:

    self in instance method = instance [OK]
Hint: Inside instance methods, think "self" means the object itself [OK]
Common Mistakes:
  • Confusing self with the class inside instance methods
  • Thinking self is a global or class variable
  • Assuming self is always the class
2. Which of the following is the correct way to define a class method using self in Ruby?
easy
A. def self.my_method; 'hello'; end
B. def my_method.self; 'hello'; end
C. def my_method(self); 'hello'; end
D. def self:my_method; 'hello'; end

Solution

  1. Step 1: Recall class method syntax

    Class methods are defined by prefixing the method name with self. inside the class.
  2. Step 2: Check each option's syntax

    def self.my_method; 'hello'; end uses def self.my_method which is correct syntax. Others are invalid Ruby syntax.
  3. Final Answer:

    def self.my_method; 'hello'; end -> Option A
  4. Quick Check:

    Class method syntax = def self.method_name [OK]
Hint: Class methods start with def self.method_name [OK]
Common Mistakes:
  • Placing self after method name
  • Using colon instead of dot
  • Passing self as a parameter
3. What will be the output of the following Ruby code?
class Dog
  def speak
    self.class
  end
end

fido = Dog.new
puts fido.speak
medium
A. Dog
B. #
C. fido
D. Object

Solution

  1. Step 1: Understand what self is inside speak

    Inside the instance method speak, self is the instance fido.
  2. Step 2: Evaluate self.class

    Calling class on the instance returns its class, which is Dog.
  3. Final Answer:

    Dog -> Option A
  4. Quick Check:

    self.class in instance method = class name [OK]
Hint: self.class inside instance method returns the object's class [OK]
Common Mistakes:
  • Thinking self.class returns the instance
  • Confusing class with object name
  • Expecting output to be an object instead of class name
4. Identify the error in this Ruby code snippet:
class Cat
  def self.meow
    puts "Meow!"
  end

  def meow
    puts "Meow from instance"
  end

  def self.instance_meow
    meow
  end
end

Cat.instance_meow
medium
A. Missing self in instance method definition
B. Calling instance method meow inside a class method without an instance
C. Incorrect syntax for class method definition
D. Using puts inside methods is not allowed

Solution

  1. Step 1: Analyze method calls inside self.instance_meow

    This is a class method trying to call meow without specifying an instance.
  2. Step 2: Understand method types

    meow without self. is an instance method, so it needs an object to call it on.
  3. Step 3: Identify the error

    Calling an instance method directly inside a class method causes a NoMethodError because no instance is given.
  4. Final Answer:

    Calling instance method meow inside a class method without an instance -> Option B
  5. Quick Check:

    Class methods cannot call instance methods without an object [OK]
Hint: Class methods need an instance to call instance methods [OK]
Common Mistakes:
  • Trying to call instance methods directly inside class methods
  • Confusing self in class vs instance methods
  • Ignoring need for object to call instance methods
5. Given the following Ruby code, what will be the output?
class Calculator
  def self.description
    "I am a Calculator"
  end

  def initialize(value)
    @value = value
  end

  def show_description
    self.class.description
  end
end

calc = Calculator.new(10)
puts calc.show_description
hard
A. NoMethodError
B. "Calculator"
C. "I am a Calculator"
D. "10"

Solution

  1. Step 1: Understand self.class.description inside instance method

    Inside show_description, self is the instance calc. Calling class returns the class Calculator.
  2. Step 2: Call class method description

    Calling description on the class returns the string "I am a Calculator".
  3. Final Answer:

    "I am a Calculator" -> Option C
  4. Quick Check:

    Instance calls class method via self.class = output string [OK]
Hint: Use self.class to call class methods from instances [OK]
Common Mistakes:
  • Expecting instance variable value instead of class method output
  • Confusing self with class inside instance methods
  • Thinking NoMethodError will occur
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