IMO the most important aspect of OOP? Invariants!
When you are declaring a class you are introducing a new type.
The constuctor is responsible to ensure that the object is initialized with a valid state. Every public method should make sure to leave your object in a valid state satisfying the class invariant.
Once you have internalized this concept, your code will become much more robust.