title: A good Object-Oriented analogy
body: <p>I'm looking for a good way to describe OO to beginners, though an analogy.</p>
  
  <p>Currently I'm likening a Class to a shopping list, and a shopping trolley full of items to an object. But I feel it's a bit confusing.</p>
  
  <p>Preferably the analogy would be reflected well in the code example (Ruby), currently I have this, and it feels klunky.</p>
  
  <pre><code># First we create a class
  class Shopping
  
      # The items method gives us a list of items in the Shopping
      def items
      ["apple", "cereal", "flour"]
      end
  end
  
  # Create a new Shopping, called basket
  basket = Shopping.new
  
  # ask the basket what items it has
  basket.items        #=&gt; ["apple", "cereal", "flour"]
  </code></pre>