Abstração Java - Mastering OOP com Abstração em Java



Este artigo sobre Java Abstraction ajudará você a entender o uso da classe Abstract e da Interface e como obtê-lo usando Abstraction.

No blog anterior, você aprendeu sobre em Java. Agora, neste blog, vamos entender mais um pilar importante da ou seja, Java Abstraction, cuja principal funcionalidade é ocultar os detalhes de implementação interna.

Estarei cobrindo os tópicos mencionados abaixo neste artigo:





Você também pode passar por esta gravação de onde você pode entender os tópicos de forma detalhada com exemplos.



Abstração em OOP

Quando geralmente falamos sobre abstração, a linguagem do software é um exemplo de abstração. Vamos dar um exemplo e escrever uma declaração como-

x = y + z

Na instrução acima, estamos adicionando duas variáveis ​​que são armazenadas em dois locais diferentes e, em seguida, armazenando o resultado em um novo local. Então, o que acontece a seguir? Como você deve saber, existem registros, conjuntos de instruções, contadores de programa, unidades de armazenamento, etc. envolvidos. Quando nos referimos à abstração em Java, estamos falando sobre abstração em e como isso é alcançado. O conceito de abstração em OOP começa bem no momento em que uma classe está sendo concebida. A abstração é aplicada em qualquer lugar em software e OOP.



O que é Java Abstraction?

A abstração nada mais é do que a qualidade de lidar com ideias, em vez de eventos. Basicamente, trata de ocultar os detalhes internos e mostrar o essencial para o usuário.

Chamada - Java Abstraction -Edureka

Se você olhar para o gif acima, poderá ver quando receber uma chamada, temos a opção de atender ou simplesmente rejeitar. Mas, na realidade, muitos códigos são executados em segundo plano. Então, aqui, você não conhece o processamento interno de como uma chamada é gerada, essa é a beleza da abstração. Você pode obter abstração de duas maneiras:

a) Aula Abstrata

b) Interface

Vamos entender esses conceitos com mais detalhes.

Classe Abstrata

A classe abstrata contém a palavra-chave 'abstrata'. Mas o que exatamente significa? Se você tornar a classe abstrata, ela não pode ser instanciada, ou seja, você não pode criar um objeto de uma classe abstrata. Além disso, uma classe abstrata pode conter métodos abstratos e concretos.

Nota: Você pode obter abstração de 0-100% usando uma classe abstrata.

Para usar uma classe abstrata, você deve herdá-la da classe base. Aqui, você deve fornecer implementações para os métodos abstratos, caso contrário, ele se tornará uma classe abstrata.

Vejamos a sintaxe de uma classe abstrata:

Classe abstrata Esportes {// classe abstrata esportes Abstract void jump () // método abstrato}

Interface

Uma interface em Java é uma coleção de métodos abstratos e constantes estáticas. Como você deve saber em uma interface, cada método é público e abstrato, mas não contém nenhum construtor. Junto com a abstração, a interface também ajuda a obter herança múltipla em Java.
Nota: Você pode atingir 100% de abstração usando interfaces.

Basicamente, Interface é um grupo de métodos relacionados com corpos vazios. Vamos entender as interfaces tomando um exemplo de interface de uma Forma com seus métodos relacionados.

forma da interface pública {public void draw () public double getArea ()}

Esses métodos precisam estar presentes em todas as ‘formas’, certo? Mas o funcionamento deles será diferente.

Suponhamos que você queira desenhar uma forma, digamos, um círculo, um quadrado, um retângulo etc. Você já sabe, cada forma possui suas próprias dimensões, como raio, altura e largura. Digamos que eu queira desenhar um círculo e calcular sua área. Considerando o mesmo, criei dois métodos no código acima, ou seja, draw () e getArea (). Agora, usando esses métodos, posso desenhar qualquer forma e calcular a área implementando sua interface.

Agora, vamos examinar a funcionalidade de como você pode implementar essa interface.
Para implementar essa interface, o nome de sua classe mudaria para qualquer uma das formas, digamos 'Círculo'. Portanto, para implementar a interface de classe, farei uso da palavra-chave ‘implementar’:

public class Circle implementa Shape {private double radius public Circle (double r) {this.radius = r} void draw () {System.out.println ('Drawing Circle')} public double getArea () {return Math.PI * this.radius * this.radius} public double getRadius () {return this.radius}} public class Teste {public static void main (String args []) {Shape c = new Circle (8) c.draw () System. out.println ('Area =' + c.getArea ())}}

No exemplo acima, especifiquei funcionalidades para os diferentes métodos e calculei a área de um círculo. Aqui, ao implementar uma interface, permite que uma classe se torne mais formal sobre o comportamento que fornece. Você também pode criar outra classe, digamos classe ‘Retângulo’, que pode herdar a mesma ‘forma’ da interface com diferentes funcionalidades.

Exemplo em tempo real de abstração em java

Suponha que tenhamos Sport como interface. Aqui, a implementação será feita por meio de aulas denominadas “Badminton” e “Futebol”. Em um cenário real, um usuário final não estará ciente da classe de implementação. Portanto, um objeto da classe de implementação pode ser fornecido pelo método de fábrica. O método de fábrica pode ser usado para criar um objeto de classe de implementação com base em algum critério.
Vamos implementar o mesmo e criar uma interface chamada Sport.java.

public Interface Sport {void play ()} // Agora, vamos criar uma classe chamada 'Badminton' public class Badminton implementa Sport {@Override public void play () {System.out.println ('Playing badminton')}} // A seguir, vamos criar nossa última classe 'Futebol', classe pública Futebol implementa esporte {@Override public void play () {System.out.println ('Playing football')}

A última etapa é criar uma classe principal chamada “SportInterface”.

public SportInterface {public static void main (String args []) {// seu código aqui}}

Quando você executa o programa acima, a saída será conforme mostrado abaixo:

Jogando badminton ------------------- Jogando futebol

Espero que vocês tenham entendido bem a interface e como você pode obter abstração usando-a. Agora, vamos concluir este artigo comparando a Abstração e o Encapsulamento.

Abstração vs Encapsulamento

Abstração Encapsulamento
Resolve o problema no nível de designResolve o problema no nível de implementação
Usado para ocultar dados indesejados e fornecer resultados relevantesEncapsulamento significa ocultar o código e os dados em uma única unidade para proteger os dados do mundo externo
Layout externo - usado em termos de designLayout interno - usado em termos de implementação

Espero que você tenha entendido a diferença entre Abstração e Encapsulação. Com isso, chegamos ao fim do blog Java Abstraction. Espero que você tenha achado informativo e tenha ajudado a agregar valor ao seu conhecimento. Se você deseja aprender mais sobre Java, você pode consultar o

Agora que você entendeu “O que é Java Abstraction”, confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso de certificação e treinamento Java J2EE e SOA da Edureka é projetado para estudantes e profissionais que desejam ser um desenvolvedor Java. O curso foi elaborado para dar a você uma vantagem inicial na programação Java e treiná-lo para os conceitos básicos e avançados de Java, juntamente com várias estruturas Java como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog “Java Abstraction” e entraremos em contato com você o mais breve possível.

objetos mutáveis ​​e imutáveis ​​em java