The Three Pillars of Object Oriented ProgrammingEncapsulation: The First PillarAn Example of Interface and ImplementationPublic, Private, and ProtectedWhy Should You Encapsulate?Abstraction: Learning to Think and Program AbstractlyWhat Is Abstraction?Two Examples of AbstractionEffective AbstractionKeeping Your Secrets Through Implementation HidingProtecting Your Object Through the Abstract Data Type (ADT)What Is a Type?An Example ADTProtecting Others from Your Secrets Through Implementation HidingA Real-World Example of Implementation HidingDivision of Responsibility: Minding Your Own BusinessEncapsulation Tips and PitfallsAbstraction Tips and PitfallsADT Tips and PitfallsImplementation Hiding TipsHow Encapsulation Fulfills the Goals of OO ProgrammingCaveatsSummaryQ&AWorkshopQuizExercises