In OOP programming style, why should we hide object's data member from being directly accessed by others

oop

Solution

It is also called data hiding which helps to maintain the integrity of the object. It saves the data from misuse and outside interference. The data cannot be accessed directly but access controls can be specified in order to obtain the information. The data or object can be made public or private depending on the needs. The data which is private is not accessible outside the scope of the object. When the data is public it can be accessed by the other parts of the program.

Problem

I just don't know why this is the RULE. and what benifit of this rule? Could you give me a example that we better follow this rule.

Original source