This document discusses encapsulation, one of the four pillars of object-oriented programming (OOP). It defines encapsulation as hiding an object's implementation from other objects while presenting only visible interfaces. An encapsulated object can be thought of as a black box that hides its inner workings and only allows interaction through interface methods. The benefits of encapsulation include providing abstraction and protecting an object's data integrity by controlling access. Setters and getters are discussed as a way to allow controlled access to private data through validation and formatting. An example bank account class demonstrates how encapsulation prevents direct changes to an account balance.