No paradigma de programação orientada a objetos, existe um conceito que consiste na separação de aspectos internos e externos de um objeto, utilizado para impedir o acesso direto ao estado de um objeto, disponibilizando, externamente, apenas métodos para alterar esse estado.
Trata-se do conceito denominado