Aprenda a abstração de dados em Java

Publicados: 2021-11-11

O conceito de abstração de dados pode ser explicado através de um exemplo da vida real. Vamos considerar um exemplo em que um motorista dirigindo um veículo sabe que aplicar os freios impedirá que o veículo se mova mais. Assim, a única informação que o motorista sabe é que ele tem que parar seu veículo, então ele aciona os freios. Mas ele não conhece o mecanismo subjacente de como o veículo para quando o freio é acionado. Assim, este conceito pode ser comparado ao conceito de abstração de dados, onde apenas as informações necessárias para serem conhecidas pelo usuário são exibidas. As informações subjacentes são mantidas ocultas. Então, esse é o conceito de abstração, e quando aplicado nos dados, é conhecido como abstração de dados.

A Programação Orientada a Objetos fornece maneiras de utilizar o conceito de abstração de dados. Java é uma Programação Orientada a Objetos, segue o recurso de abstração de dados. Nessas linguagens de programação, classes abstratas e interfaces são usadas para obter a abstração de dados.

O processo de abstração de dados em Java é realizado através das classes abstratas da classe. Interfaces também são usadas para abstração de dados além de classes abstratas. A palavra-chave “abstract” é usada como um modificador de não acesso para os métodos e classes. Quando definida com a palavra-chave access, uma classe é uma classe abstrata onde a criação de objetos não é permitida. A adesão da classe abstrata só é possível se for herdada de outra classe. Métodos abstratos são aqueles métodos que podem ser usados ​​apenas em classes abstratas. Esses métodos não têm um corpo de método.

A subclasse geralmente fornece o corpo. As classes abstratas podem conter métodos regulares e abstratos.

Índice

Diferenças entre uma classe abstrata e um método abstrato

As diferenças entre uma classe abstrata e um método abstrato são:

1. As classes abstratas são aquelas classes que são declaradas com a palavra-chave abstract.

2. Um método abstrato é um tipo de método que é declarado sem sua implementação.

3. Uma classe abstrata não precisa ter todos os métodos de métodos abstratos dentro de si. Ele também pode conter métodos que não são abstratos.

4. Sempre que um método é definido como um método abstrato, ele também deve ser definido novamente na subclasse. Isso tornará a substituição obrigatória e também tornará a subclasse abstrata.

5. Se alguma classe contiver métodos abstratos, seja um método abstrato ou mais que isso, ela deve ser declarada abstrata usando a palavra-chave abstract.

6. Uma classe abstrata não pode conter nenhum objeto. Um novo operador não pode ser usado para instanciar a classe abstrata.

7. Há sempre a presença de construtores padrão em uma classe abstrata. Além disso, construtores parametrizados podem estar presentes em uma classe abstrata.

Classe abstrata Java

A linguagem de programação Java implementa a abstração por meio de classes abstratas. Uma classe abstrata pode ser definida como aquela classe que é declarada com a palavra-chave “abstract” com uma instrução especial de que essas classes não podem ser instanciadas. Essas classes podem conter ou não métodos abstratos.

A sintaxe de uma classe abstrata em Java é mostrada abaixo.

O código acima foi retirado de https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ .

Na sintaxe acima, pode-se observar que tanto os métodos abstratos quanto os não abstratos podem estar contidos em uma classe abstrata. Além disso, a palavra-chave “abstract” é colocada antes da declaração da classe.

Leia mais sobre a classe abstrata java aqui

Método Java Abstrato

Os métodos abstratos Java são aqueles métodos que são precedidos pela palavra-chave “abstract”, mas não há implementação dos métodos. Os métodos abstratos Java são declarados dentro da classe abstrata Java.

Por causa dos métodos abstratos, a classe abstrata Java fica incompleta porque os métodos não podem ser implementados. Portanto, a inclusão de um formulário abstrato na classe abstrata naturalmente torna a classe abstrata incompleta.

Sua implementação na subclasse pode usar o método abstrato. Essa subclasse herdará a classe abstrata e realizará a implementação dos métodos abstratos. A sintaxe geral do método abstrato é

abstract void methodName (lista_de_parâmetros);

Poucas regras devem ser observadas ao escrever o método de resumo

  • Se uma classe contém mais de um método abstrato, então a classe se tornará uma classe abstrata.
  • Não deve haver nenhuma palavra-chave além de “abstract” ao definir a classe abstrata e os métodos.

Considerando os pontos acima, as seguintes possibilidades não são permitidas em Java.

  • final
  • nativo abstrato
  • abstrato estático
  • abstrato privado
  • resumo sincronizado
  • resumo estritofp

Um exemplo de abstração de dados em Java é mostrado abaixo.

https://www.javatpoint.com/how-to-achieve-abstraction-in-java .

O código acima foi retirado de https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ .

No código mostrado acima, existe uma classe Bank. Existe um método abstrato dentro da classe Bank que é getInterestRate(). São declaradas duas outras classes BOI e ICICI, que herdam a classe Banco. Essas classes declaradas herdam a classe Bank e, portanto, implementam o método getInterestRate() retornando as taxas de juros.

Um objeto do Banco é criado no método primário. O objeto do Banco consiste em um objeto da classe ICICI que exibe a taxa de juros. Na próxima etapa, também é criado o objeto da classe BOI, que exibe a taxa de juros.

Abstração de dados através da interface

As interfaces são semelhantes às classes Java, com a única diferença de que existem métodos vazios em uma interface. Também pode ser definido como classes que consistem em métodos abstratos e constantes estáticas. Todo método presente na interface é público e não contém nenhum construtor. A interface é usada para obter abstração de dados e também é usada para executar heranças múltiplas em Java.

Algumas características das interfaces em Java são:

  • As interfaces podem ser usadas para alcançar a abstração total.
  • Uma única classe pode usar várias interfaces que levam à obtenção de várias interfaces.
  • As interfaces permitem obter um acoplamento solto.

A sintaxe da interface é mostrada abaixo:

A sintaxe acima é usada em https://www.javatpoint.com/how-to-achieve-abstraction-in-java .

Uma interface pode ser usada por meio da palavra-chave “implements”.

Algumas diferenças entre as classes abstratas e a interface são:

  • Tanto os métodos abstratos quanto os não abstratos podem estar contidos nas classes abstratas. Enquanto, em uma interface, apenas os métodos abstratos podem estar presentes.
  • As variáveis ​​finais podem ou não estar presentes nas classes abstratas. Em interfaces, as variáveis ​​podem ser finais como variáveis ​​padrão.
  • O resumo da classe pode ter variáveis ​​não finais, finais, não estáticas ou estáticas. Enquanto, em uma interface, somente variáveis ​​estáticas e finais podem estar presentes.
  • A classe abstrata permite a implementação de interfaces. Uma classe abstrata não pode ser implementada em uma interface.
  • A herança de uma classe abstrata é feita através da palavra-chave “extends”. A implementação da interface é feita através da palavra-chave “implements”.
  • A classe abstrata pode implementar múltiplas interfaces, ou outras classes podem ser estendidas pela classe abstrata. Considerando que uma interface pode permitir a implementação de apenas outra interface.
  • Além dos membros públicos, os membros de dados protegidos e privados estão contidos em uma classe abstrata. Enquanto os membros de uma interface são, por padrão, públicos.

Aprenda cursos 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

O artigo descreveu os conceitos de abstração de dados e listou como a abstração de dados pode ser obtida em Java. Para obter mais experiência na linguagem de programação Java, você pode conferir o Curso de Desenvolvimento de Software oferecido pelo upGrad. O curso é projetado para profissionais que trabalham e irá treiná-lo com projetos orientados para a indústria que desenvolverão as habilidades de programação necessárias. Mais informações podem ser obtidas através do nosso site. Para qualquer informação e ajuda, nossa equipe de assistência pode ser contatada.

O que é abstração de dados?

A abstração de dados é um conceito de design de software. O problema que ele resolve é criar estruturas de dados e funções que são independentes dos tipos de dados em que operam. Ele isola o código dos tipos de dados e permite que o mesmo código seja usado em várias situações. A abstração de dados é alcançada quando os dados representados pela estrutura de dados e as operações que podem ser aplicadas a eles são claramente definidos. A abstração é vital no desenvolvimento de software. É uma das forças fundamentais que levam a softwares mais simples, menores e mais confiáveis. A abstração de dados é um componente vital das linguagens de alto nível.

Quais são as vantagens da abstração em Java?

Como obter abstração em Java?

As abstrações em Java são feitas usando Interfaces. Para implementar a interface, é preciso fornecer a implementação também. Na verdade, não há necessidade de herdar classes para implementar a interface. Interfaces são como qualquer outra classe em java. O que os diferencia é o fato de terem apenas um método.