Diferença entre encapsulamento e abstração

Diferença entre encapsulamento e abstração
Diferença entre encapsulamento e abstração

Vídeo: Diferença entre encapsulamento e abstração

Vídeo: Diferença entre encapsulamento e abstração
Vídeo: DIFERENÇA entre BLOG e SITE (Série #Dúvidas) 2024, Novembro
Anonim

Encapsulação vs Abstração

Encapsulação e Abstração são dois conceitos diferentes, mas relacionados, encontrados em linguagens OOP (Programação Orientada a Objetos). Encapsulamento é o conceito de combinar dados e comportamento juntos como uma única entidade. Por outro lado, Abstração é o processo de apresentar como uma entidade se comporta\parece em oposição a como ela é implementada.

O que é Encapsulamento?

Encapsulação é o processo de encapsulamento de dados e operações que operam neles em uma única entidade. Isso significa essencialmente que, para acessar os 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, pois o usuário não pode acessar e modificar diretamente os dados como desejar. Os usuários obterão ou definirão os valores de dados somente por meio dos métodos que estão publicamente disponíveis para os usuários. Esses métodos geralmente fornecem validação de dados para que apenas os dados no formato apropriado possam ser inseridos nos campos. Portanto, os benefícios do encapsulamento são três. Através do Encapsulamento, o programador pode tornar os campos de uma classe somente leitura ou somente escrita. Em segundo lugar, uma classe pode ter controle total sobre o que está armazenado em seus campos. Finalmente, os usuários de uma classe não precisam se preocupar como seus dados estão sendo armazenados. Em Java, o programador pode declarar todas as variáveis de instância como privadas e fornecer métodos get e set (que são públicos) para acessar e modificar os campos privados.

O que é Abstração?

Abstração é o processo de separar os detalhes da apresentação dos detalhes da implementação. Isso é feito para que o desenvolvedor fique livre 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 se concentra em como uma determinada entidade pode ser usada e não em como ela é implementada. A abstração essencialmente oculta os detalhes da implementação, de modo que, mesmo que a metodologia de implementação mude ao longo do tempo, o programador não precise se preocupar como isso 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 revelarão detalhes de hardware, enquanto a abstração de alto nível revelará apenas a lógica de negócios da entidade. O termo abstração pode ser usado para se referir tanto a uma entidade quanto a um processo e isso leva a alguma confusão. Como processo, abstração significa extrair detalhes essenciais ignorando os detalhes não essenciais de um item ou grupo de itens, enquanto como entidade, abstração significa um modelo ou visão de uma entidade com apenas os detalhes essenciais. Em Java, o programador pode usar a palavra-chave abstract para declarar uma classe como uma entidade abstrata, que representa as características essenciais de definição de uma entidade do mundo real.

Qual é a diferença entre Encapsulamento e Abstração?

Embora Encapsulamento e Abstração sejam conceitos altamente relacionados encontrados em linguagens de Programação Orientada 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 ficar oculto. Encapsulamento são as técnicas para empacotar a informação de forma que torne visível o que deveria ser visível e esconda o que deveria ser escondido. Em outras palavras, o encapsulamento pode ser identificado como um passo além da abstração. Enquanto a abstração reduz um objeto do mundo real a suas características definidoras essenciais, o encapsulamento estende essa ideia ao modelar e vincular essa funcionalidade dessa entidade.

Recomendado: