- Variable & Method can be well protected.
- Increase the code reusability.
Example:
The name can only modified by the constructor
$student = new Student('John Doe');
The age can only modified by setAge method
$student->setAge(14);
The $age cannot be direct accessed
$student = new Student('John Doe');
$student->age = 14;