Qual é a diferença entre abstraction e encapsulation e você pode me explicar com um exemplo real, como ele está sendo usado internamente em java?

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.

  • A primeira diferença entre Abstração e Encapsulamento é que, Abstração é implementada em Java usando interface e classe abstrata, enquanto Encapsulação é implementada usando modificador de acesso privado, privado de pacote e protegido.
  • O encapsulamento também é chamado de ocultação de dados.
  • Os princípios de design são baseados na abstração e "encapsulam quaisquer alterações" são baseados no encapsulamento.

Exemplo

  1. classe pública Main {public static void main (String args []) {TwoWheeler test = new Honda (); test.run (); }} classe abstrata TwoWheeler {public abstract void run ();} classe Honda estende TwoWheeler {public void run () {System.out.println ("Running .."); }}

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

  1. classe Employee {private int employeeId; private String employeeName; designação de String privada; public int getEmployeeId () {return employeeId

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.