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 can contain both data and functions. Visibility determines which members can be accessed from inside or outside a class. Encapsulation wraps data and functions together, while inheritance allows classes to inherit attributes from parent classes. Polymorphism enables different implementations of methods with the same name. Abstraction hides implementation details and provides a public interface.