This document introduces object-oriented programming concepts through the example of implementing a "thinking cap" class. It describes defining a thinking_cap class with private string data members to hold messages, and public member functions to set the strings and output them. These functions are defined in a separate .cxx file. The document shows how objects of the thinking_cap class can be declared and have their member functions called from a main program to demonstrate storing and retrieving messages from the cap.