Diferença entre Encapsulamento e Abstração

Anonim

Encapsulamento vs Abstração

Encapsulamento e Abstração são dois conceitos diferentes, mas relacionados, encontrados em linguagens OOP (Object Oriented Programming). O encapsulamento é o conceito de combinar dados e comportamento juntos como uma entidade única. Por outro lado, a Abstração é o processo de apresentação de como uma entidade se comporta como "oposta" em oposição à forma como é implementada.

O que é encapsulamento?

Encapsulamento é o processo de empacotamento de dados e operação que operam sobre eles em uma única entidade. Isto significa essencialmente que, para acessar dados, certos métodos predefinidos devem ser usados. Em outras palavras, os dados encapsulados não são diretamente acessíveis. Isso garante que a integridade dos dados seja preservada porque o usuário não consegue acessar e modificar diretamente os dados conforme ele deseja. Os usuários obterão ou definirão os valores de dados apenas através dos métodos que estão disponíveis publicamente para os usuários. Esses métodos geralmente fornecem validação de dados para que somente os dados no formato apropriado possam ser inseridos nos campos. Portanto, os benefícios do encapsulamento são três vezes. Através de encapsulamento, o programador pode fazer campos de uma classe somente leitura ou gravar. Em segundo lugar, uma classe pode ter controle total sobre o que é armazenado em seus campos. Finalmente, os usuários de uma classe não precisa se preocupar como seus dados estão sendo armazenados. Em Java, o programador pode declarar toda a variável de instância como privada e fornecer métodos de obter e definir (que são públicos) para acessar e modificar os campos privados.

O que é Abstração?

A abstração é o processo de separação dos detalhes da apresentação dos detalhes de implementação. Isso é feito para que o desenvolvedor seja aliviado dos detalhes de implementação mais complexos. Em vez disso, o programador pode se concentrar na apresentação ou nos detalhes comportamentais da entidade. Em termos simples, a abstração foca em como uma determinada entidade pode ser usada em vez de como ela é implementada. A abstração essencialmente esconde os detalhes de implementação, de modo que, mesmo que a metodologia de implementação mude ao longo do tempo, o programador não teria que se preocupar com a forma como afetaria seu programa. Um sistema pode ser abstraído em várias camadas ou níveis. Por exemplo, camadas de abstração de baixo nível irão revelar detalhes de hardware, enquanto a abstração de alto nível apenas revelará a lógica de negócios da entidade. O termo abstração pode ser usado para se referir a uma entidade e a um processo, o que leva a alguma confusão. Como um processo, a abstração significa extrair detalhes essenciais ao ignorar os detalhes inerentes de um item ou um grupo de itens, enquanto que como entidade, a abstração significa um modelo ou uma visão de uma entidade com apenas os detalhes essenciais.Em Java, o programador pode usar o resumo da palavra-chave para declarar uma classe como uma entidade abstrata, que representa a definição essencial que caracteriza uma entidade do mundo real.

Qual a diferença entre encapsulamento e abstração?

Embora o Encapsulamento e a Abstração sejam conceitos altamente relacionados encontrados em linguagens de programação orientadas a objetos, eles têm diferenças importantes. A abstração é uma técnica que nos ajuda a identificar o que deve ser visível e o que deve ser escondido. O encapsulamento é a técnica de empacotamento da informação, que torna visível o que deve ser visível e esconde o que deve ser escondido. Em outras palavras, encapsulamento pode ser identificado como um passo além da abstração. Embora a abstração reduza um objeto do mundo real para suas características definidoras essenciais, o encapsulamento estende essa idéia modelando e vinculando essa funcionalidade dessa entidade.