No termo do leigo: a abstração está apenas mostrando o que é necessário para o usuário. Por exemplo. Quero imprimir assim, só devo saber o nome da função (e parâmetros opcionais). Não importa como é feito internamente, como é programado - qual idioma? Quando você abre um aplicativo, vê o botão de login. Você sabe quando você digitar userid e senha você estará logado, certo? É isso aí. Você não precisa saber o que acontece internamente. Isso é abstração.
Encapsulamento é ter algo dentro de algo, como um contêiner. Uma classe possui dados que pertencem à classe. Portanto, a classe se torna o contêiner que mantém os dados e os manipula. Acessamos dados através da classe. Tempo real, por exemplo. Um pote de biscoitos. Para levar os cookies, você precisa do acesso ao frasco.
Abstração é mais sobre o que uma classe pode fazer.
Encapsulamento é mais sobre 'Como' alcançar essa funcionalidade.
Exemplo
Este é um exemplo simples de abstração, é usado apenas para ocultar os dados.
Abstração: -
Abstração é processo de
ocultando os detalhes da implementação
e mostrando apenas a funcionalidade.
A abstração em java é obtida usando a interface e a classe abstrata. A interface fornece 100% de abstração e a classe abstrata fornece 0-100% de abstração.
Encapsulamento: -
Encapsulamento é processo de
código de embrulho
e dados juntos em uma única unidade.
Podemos criar uma classe totalmente encapsulada, fazendo toda a
membro de dados será privado
e crie o método getter, setter para acessar esse membro de dados.
Exemplo
A idéia por trás do encapsulamento é ocultar os detalhes da implementação dos usuários. Se um membro de dados é privado, significa que ele só pode ser acessado dentro da mesma classe. Nenhuma classe externa pode acessar o membro de dados privados (variável) de outra classe.
Espero que isto ajude:)
A abstração é totalmente diferente do encapsulamento.
Tomemos a caneta esferográfica como exemplo,
Abstração: Quando você usa a caneta, a funcionalidade interna da caneta (fluxo de tinta, etc.) não fica diretamente visível para o usuário; essa funcionalidade fica oculta do usuário final, pois é irrelevante. Essa maneira de reduzir a complexidade impedindo o a visibilidade da implementação interna é chamada de Abstração.
Encapsulamento: quando você considera o exemplo acima para encapsulamento, a tinta não pode ser acessada diretamente pelo usuário final, porque os fabricantes não deram acesso direto à tinta ao usuário final, pois podem danificar acidentalmente o funcionamento da caneta. o acesso inadequado e o fornecimento do acesso necessário são chamados de encapsulamento.
Quando você olha para java, (Exemplo simples) Ao declarar membros (variáveis ou funções) da classe como particulares, Você não pode acessar esses membros de nenhuma outra classe. Esse tipo de restrição de acesso é chamado como
Encapsulamento.
Quando você usa qualquer função da biblioteca java em seu próprio programa, não conhece a implementação dessas funções. Isso é chamado de
Abstração.