Intro
The Object Oriented Programming (OOP) paradigm can be characterized by five main principles. When combined they lend themselves to building coherent OOP programs that promote Atomicity, Encapsulation, Information Hiding, Modularization, and Reusability. These principles are so coveted, that for many it’s the only right way to write Object-Oriented programs.
In my own experiences, I used to struggle with some of the principles, not truly realizing their worth in my small personal projects, but that changed when I got exposure to larger projects with many moving parts and many contributors.
The following are brief overviews of these principles.