This document provides an overview of object-oriented programming (OOP) concepts including classes, visibility, encapsulation, inheritance, polymorphism, and abstraction. A class defines the structure and behavior of an object and includes both data and functions. Visibility determines which members can be accessed from within or outside the class. Encapsulation wraps data and functions into a single unit. Inheritance allows a subclass to inherit properties and behaviors from a parent class. Polymorphism enables classes to provide different implementations of methods with the same name. Abstraction hides implementation details and provides essential public methods to manipulate object data without knowing internal details.