It is the first and one of the most important principles of object orientation (OOP).
Its objective is to understand classes and their responsibilities within the system. It is one of the easiest to understand and apply, and is based on the following premise:
Important
A class should have one, and only one, reason to change.
Let's look at the class below: