Object-oriented programming (OOP) is a programming model that organizes software design around objects rather than functions and logic. In OOP, a program is made up of objects that have attributes and behaviors. Classes define the structure and behavior of objects. Key concepts of OOP include encapsulation, inheritance, polymorphism, and classes. OOP focuses on data objects rather than procedures, making it well-suited for large, complex programs that require ongoing maintenance.