3.2. Instance variables and object state

When we created individual objects and wrote methods for each action or value we needed, we hard-coded the value into the object through the methods. With this technique, if a ticket costs $117.50, then it has a method called price that returns precisely that amount:

ticket = Object.new
def ticket.price
  117.50
end

But now we’re moving away from one-at-a-time object creation with Object.new and setting our sights on the practice of designing classes and creating many objects from them.

This means we’re changing the rules of the game when it comes to information like the price of a ticket. If you create a Ticket class, you can’t give it a price method that returns $117.50, for the simple reason that not ...

Get The Well-Grounded Rubyist, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.