Object-oriented programming (OOP) is a way to treat everything as objects. These objects can contain data that is then manipulated or setup in such a way to perform certain tasks through methods. For instance, let’s pick a car as an example. In the real world what are some of the characteristics that make up a car? What about its color, size of the wheels, number of doors, how much horse power is it? Is it a manual transmission? Creating an object in code is much like this, the programmer has control in including any characteristics needed for this car object. On top of that, the best part of OOP is creating methods that perform tasks. For instance, we could create a method to what happens when this car is put into drive, will it move forward without user pressing on the gas pedal? In essence, the programmer is the creator of his own little universe. He can define the world as it is in our reality or create a different one that goes against physics.
Why does this matter?
OOP is great for code reusability, testing, maintenance, and cleaner code. The last thing a programmer wants to deal with is by reading spaghetti code. I view programming as an art and OOP helps me paint my masterpiece. Ideally the less code needed to write, the better. We get this help through encapsulation,inheritance, and overloading.
Does OOP have any cons?
The learning curve is high for most to fully grasp this concept. Also it can be inefficient if the objects become too bloated.
All in all, objective-oriented programming is a blessing for all programmers for all its features.
To dive deeper into object-oriented programming I invite you to checkout this article.