Abstração vs Encapsulamento: Diferença entre Abstração e Encapsulamento

Publicados: 2021-02-09

Índice

Introdução

Todo programador prospera para desenvolver um código limpo e limpo, e ele deve usar uma arma adequada dos conceitos de armadura ou OOP. O uso de conceitos de POO adequados reduzirá a complexidade e a entidade dos objetos será dissociada de outras partes do código. Além disso, melhora a legibilidade e pode ser facilmente modificado, se necessário.

Além disso, o conceito OOP como herança fornece a extensibilidade do código. Esses conceitos são úteis para definir classes abstratas, atualizar códigos implementados anteriormente, implementar uma aplicação para cenários da vida real.

Abstração, encapsulamento são os conceitos fundamentais na programação orientada a objetos. E todo programador implementa esses conceitos para um código limpo e reutilizável. Mas há um número considerável de diferenças entre esses dois conceitos, vamos entendê-los neste artigo.

Primeiramente, vamos dar uma rápida olhada nos conceitos de abstração e encapsulamento.

Abstração

A abstração é um processo de ocultar dados desnecessários e mostrar apenas dados relevantes. Fora de um oceano de dados, estamos apenas mantendo a transparência de alguns dados para o usuário. Este importante conceito na programação orientada a objetos reduzirá a complexidade do código e aumentará a legibilidade.

Por exemplo, digamos que nos foi atribuída uma tarefa para criar um portal de inscrição em um curso online e os campos de dados disponíveis para nós são {nome, idade, ocupação atual, nome da faculdade, nome do curso, forma de pagamento, nome do irmão, estado civil, veículo número}.

Depois de ver os campos de dados disponíveis, vamos entender que alguns campos não são necessários para o portal de matrícula do curso, campos como {nome do irmão, estado civil, número do veículo} não são obrigatórios para matrícula no curso.

Portanto, precisamos ser específicos e escolher apenas os dados relevantes. Agora os campos necessários são {nome, idade, ocupação atual, nome da faculdade, nome do curso, forma de pagamento}, isso é um exemplo de abstração em POO porque acompanhamos informações selecionadas de dados inteiros.

Agora, esses novos dados também podem ser usados ​​para alguns outros aplicativos, como rastreador de status do curso, registro de conclusão do curso, etc. Podemos usar os mesmos dados sem nenhuma alteração.

Muitas pessoas ficam muitas vezes confusas sobre abstração e classe abstrata, então ambas estão relacionadas?

Uma classe abstrata é diferente de abstração, classes/métodos abstratos são criados com a intenção de implementá-los na classe filha ou subclasse. Enquanto a abstração está simplesmente ocultando os dados e mostrando apenas os dados relevantes usando especificadores de acesso como public, protected, private.

Encapsulamento

O encapsulamento está vinculando os membros de dados a variáveis ​​de membro. Isso evitará o acesso direto de variáveis, porque o acesso direto de variáveis ​​pode violar a privacidade e a ocultação da implementação não será possível.

Podemos ter passado por alguns métodos clássicos na classe como set e get, onde o método set é usado para atualizar ou alocar um valor para uma variável e o método get é usado para ler ou recuperar o valor de uma variável. Aqui podemos acessar diretamente as variáveis ​​usando o objeto dessa classe, mas se quisermos tornar uma variável privada, devemos usar essas configurações e obter métodos.

O conceito é simples, vamos tornar os métodos set e get públicos e as variáveis ​​são privadas. Portanto, as variáveis ​​podem ser acessadas apenas através dos métodos públicos fora da classe, pois objetos privados não são acessíveis fora da classe, mas acessíveis dentro da classe. Esse conceito de vincular ou agrupar variáveis ​​com métodos é chamado de encapsulamento.

Vamos dar uma olhada em um programa Java simples para entender isso melhor.

classe Inscrição do Curso {
private String nome_aluno;
private String nome_do_curso;
public String getName (){
return nome_aluno;
}
public void setName (nome da string){
este .student_name=nome;
}
public String getCourse (){
return nome_curso;
}
public void setCourse (curso de strings){
este .course_name=curso;
}
}
classe pública u pGrad {
public static void main (String[] args){
CourseRegistration c= new CourseRegistration();
c.setName( “mithun” );
c.setCourse( “Ciência de Dados” );
System.out.println(c.getName());
System.out.println(c.getCourse());
}
}

No código acima, criamos uma classe CourseRegistration, onde as variáveis ​​membro nome do aluno e nome do curso são privadas, mas estamos acessando em outra classe usando as funções set name e get name. Na classe principal, criamos um objeto do tipo CourseRegistration. Estamos inicializando e acessando as variáveis ​​de membro usando as funções set e get.

Agora que vimos a definição e o exemplo de abstração, vamos discutir as vantagens e diferenças entre abstração e encapsulamento.

Vantagens da Abstração

  • A privacidade dos dados é mantida, pois apenas os dados relevantes são visíveis para o usuário.
  • Reduz a complexidade do código e aumenta a legibilidade.
  • A classe que implementa a abstração pode ser usada como uma classe pai herdando-as, melhorando assim a reutilização e reduzindo a duplicação.

Vantagens do Encapsulamento

  • Ele ajuda a vincular os membros de dados com funções de membro.
  • Melhora a eficiência e facilidade de uso para análise de erros.
  • Fornece flexibilidade ao programador no controle da acessibilidade e transparência dos dados.

Diferença entre Abstração e Encapsulamento

Definição

  • A abstração está ocultando os detalhes e a implementação do código.
  • O encapsulamento está ocultando os dados e controlando a visibilidade do código.

Estágio

  • A abstração é um processo de nível de design.
  • O encapsulamento é um processo de nível de implementação.

Habilidade essencial

  • A abstração está preocupada com o que uma instância de classe pode fazer, em vez da implementação da classe.
  • O encapsulamento ajuda na vinculação de dados e no controle sobre a manutenção da transparência dos dados.

Caso de uso

  • A abstração é um processo de nível de design e é usado para reduzir a complexidade na fase de design de um projeto.
  • O encapsulamento é um processo de nível de implementação e é usado para fornecer privacidade e manter o controle sobre a transparência dos dados no estágio de implementação de um projeto.

Como implementar

  • A abstração pode ser alcançada usando classes e interfaces em java.
  • O encapsulamento também é implementado usando classes e o controle sobre a privacidade dos dados é obtido especificando especificadores de acesso como protected, public, private.

Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Conclusão

Passamos pela importância dos conceitos de POO, entendemos a definição de abstração e encapsulamento. Percorreu os exemplos de abstração e encapsulamento. Também analisamos as vantagens de usar conceitos de POO como abstração e encapsulamento. E, finalmente, passamos pela diferença entre abstração e encapsulamento.

Agora que você está ciente da definição e implementação de abstração, encapsulamento, tente implementá-los em seu código e tente reduzir a complexidade do código que você vai escrever a partir de agora!

Se você estiver interessado em aprender mais sobre Java, desenvolvimento full-stack, confira o Programa PG Executivo do upGrad & IIIT-B em Desenvolvimento de Software Full-stack, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, mais de 9 projetos , e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.

O que é abstração na programação orientada a objetos?

A abstração na programação orientada a objetos é uma técnica para representar as informações de alto nível sobre um problema através da construção de um objeto. A abstração é implementada com a ajuda da interface e a implementação da interface é feita usando o código real. A abstração é implementada onde os detalhes concretos são escondidos dos módulos consumidores, fornecendo uma interface diferente. A abstração é implementada para ocultar os detalhes de implementação dos detalhes de baixo nível. Também é usado para ocultar os detalhes complexos e fornecer a interface mais simples ao usuário.

Como as classes e objetos funcionam na programação?

Classes e objetos são os dois principais conceitos empregados em todas as linguagens de programação orientadas a objetos. Cada classe contém um conjunto de variáveis ​​e métodos que podem ser usados ​​e manipulados. Em uma linguagem de programação orientada a objetos, todos os objetos em um programa têm um tipo específico e as variáveis ​​e métodos de um objeto só podem ser manipulados por métodos do mesmo tipo. Na maioria das linguagens orientadas a objetos, a classe é usada para criar um objeto e vice-versa. Um programa orientado a objetos é composto de objetos, procedimentos e tipos de dados. Tudo em um programa orientado a objetos, incluindo dados e código, é um objeto.

Quais são as diferenças entre encapsulamento e abstração?

A abstração é um método de remover os detalhes desnecessários no código e focar nas partes relevantes. Por exemplo, em vez de escrever uma função que multiplica dois números, podemos escrever uma função “multiplicar” e usá-la para multiplicar qualquer número por qualquer número. A abstração é uma forma de representar alguns dados específicos. Encapsulamento é uma forma de esconder a complexidade de algo e expor apenas as partes que você deseja expor. Por exemplo, se você tem uma classe que tem um ou mais campos privados que você usa para armazenar os dados, então você está em encapsulamento. A classe contém os dados e possui métodos que expõem os dados públicos.