Object-oriented programming (OOP) is a programming style based on objects rather than on procedures and functions. It is the natural upgrade of the structured programming style we used in the previous chapters.
In structured programming, you have to think about procedures and functions that solve a particular problem. In object-oriented programming, you think in terms of objects — self-contained boxes that contain both data and code that operates on object data.
This chapter gives you an overview of object-oriented programming and explains the following core terms related to it: class, object, encapsulation, inheritance, and polymorphism.