Definições retiradas do livro "Conceitos de Linguagens de Programação - Bookman, 2003" de Robert W. Sebesta, nele costa na página 411 a seguinte explicação sobre encapsulamento:
"O encapsulamento é um agrupamento de subprogramas e dos dados que eles manipulam. O encapsulamento, separada ou independentemente compilável, constitui um sistema abstraído e uma organização lógica para uma coleção de computações relacionadas".
Assim, explica o autor, o encapsulamento de um conjunto de subprogramas (módulos) e dados, relacionados logicamente. Usado como técnica para enfrentar os problemas de manter programas extensos bem administráveis, e agilizar possíveis recompilações após alterações. A questão apenas retirou os trechos sublinhados, os reorganizou, sem invalidar a definição.
Para o conceito de abstração, foi também retirado do mesmo livro. Na página 410, costa a seguinte afirmação:
"Uma abstração é uma visualização ou uma representação de uma entidade que inclui somente os atributos de importância em um contexto particular."
Pode-se gerar uma dúvida quando se ler o trecho: "inclui somente os atributos de importância...". Deve-se ter bastante cuidado ao interpretar a afirmação, pois do ponto de vista prático pode soar errado, mas na verdade não é. Pois, quando estamos usando a "Abstração" para compor, por exemplo, um objeto no paradigma OO, fazemos cortes no mundo real, por mais que tenhamos atribuir ao objeto o máximo de detalhe necessário. Não atribuímos a um objeto Usuário, por exemplo, todas as suas características, como cor da pele, árvore genealógica, hora de nascimento. Esses atributos serão excluídos dependendo do contexto, do objetivo da computação. Assim a abstração é usada como arma para combater a complexidade da programação em representar seus contextos.