Desenvolvedores limitam a visibilidade de campos/atributos e procedimentos/métodos de objeto para criar encapsulamento, ou seja, a noção de que um objeto nunca deve revelar detalhes sobre si mesmo aos quais não tem a intenção de dar suporte.
A interface, às vezes abreviada de API, de um objeto consiste em todos os seus recursos (atributos ou métodos) que foram programados como sendo públicos. Isso significa que os referidos recursos podem ser utilizados e acessados por qualquer outra parte do seu código fonte.
Tornar o software mais flexível, fácil de modificar e expandir é o objetivo desse procedimento.