Object-oriented programming (OOP) is a programming model that organizes software around data (objects) rather than functions. The four pillars of OOP are encapsulation, abstraction, inheritance, and polymorphism. Encapsulation hides internal implementation details within classes, abstraction simplifies complexity for users, inheritance allows classes to inherit attributes from parent classes, and polymorphism enables classes to share behaviors. The advantages of OOP include code reusability through inheritance, increased productivity through modular pre-written code, simpler troubleshooting by isolating errors to specific classes, reinforced security, and design advantages for software engineering.