|
| 1 | +# Classes Anônimas e Lambdas em Java |
| 2 | + |
| 3 | +## Introdução |
| 4 | + |
| 5 | +Neste documento, vamos explorar dois recursos poderosos da linguagem Java: classes anônimas e lambdas. Essas |
| 6 | +funcionalidades são amplamente utilizadas para implementar abordagens mais concisas e expressivas ao lidar com |
| 7 | +interfaces funcionais. |
| 8 | + |
| 9 | +## Classes Anônimas |
| 10 | + |
| 11 | +Em Java, uma classe anônima é uma forma de criar uma classe sem nome diretamente no local em que ela será usada. Ela é |
| 12 | +útil quando precisamos implementar uma interface ou estender uma classe abstrata de forma rápida e sem a necessidade de |
| 13 | +criar uma classe separada. |
| 14 | + |
| 15 | +A sintaxe básica para criar uma classe anônima é a seguinte: |
| 16 | + |
| 17 | +```java |
| 18 | +interface Exemplo { |
| 19 | + void metodo(); |
| 20 | +} |
| 21 | + |
| 22 | +public class ClasseExemplo { |
| 23 | + public static void main(String[] args) { |
| 24 | + Exemplo obj = new Exemplo() { |
| 25 | + public void metodo() { |
| 26 | + System.out.println("Implementação do método"); |
| 27 | + } |
| 28 | + }; |
| 29 | + obj.metodo(); |
| 30 | + } |
| 31 | +} |
| 32 | +``` |
| 33 | + |
| 34 | +Nesse exemplo, criamos uma classe anônima que implementa a interface `Exemplo` e define a implementação do método |
| 35 | +`metodo()`. Em seguida, criamos um objeto dessa classe e chamamos o método `metodo()`. |
| 36 | + |
| 37 | +As classes anônimas são particularmente úteis quando queremos fornecer uma implementação específica para uma interface |
| 38 | +funcional em um contexto específico, sem a necessidade de criar uma classe separada. |
| 39 | + |
| 40 | +## Lambdas |
| 41 | +Lambdas são uma forma mais concisa e expressiva de escrever código em Java quando trabalhamos com interfaces funcionais. |
| 42 | +Uma interface funcional é aquela que contém apenas um único método abstrato. O uso de lambdas permite escrever o corpo |
| 43 | +desse método diretamente, sem precisar criar uma classe anônima. |
| 44 | + |
| 45 | +Aqui está um exemplo básico de como usar lambdas em Java: |
| 46 | + |
| 47 | +```java |
| 48 | +interface OperacaoMatematica { |
| 49 | +int executar(int a, int b); |
| 50 | +} |
| 51 | + |
| 52 | +public class ExemploLambda { |
| 53 | +public static void main(String[] args) { |
| 54 | +OperacaoMatematica soma = (a, b) -> a + b; |
| 55 | +System.out.println(soma.executar(2, 3)); // Saída: 5 |
| 56 | + |
| 57 | + OperacaoMatematica subtracao = (a, b) -> a - b; |
| 58 | + System.out.println(subtracao.executar(5, 2)); // Saída: 3 |
| 59 | + } |
| 60 | + |
| 61 | +} |
| 62 | +``` |
| 63 | +Neste exemplo, definimos a interface funcional `OperacaoMatematica`, que possui o método `executar()`. Em seguida, usamos |
| 64 | +lambdas para implementar a adição e a subtração. Não precisamos criar classes anônimas; em vez disso, definimos as |
| 65 | +implementações diretamente usando a `sintaxe () -> ....` |
| 66 | + |
| 67 | +Lambdas são particularmente úteis quando lidamos com coleções de dados ou quando precisamos passar comportamentos como |
| 68 | +argumentos para métodos. |
| 69 | + |
| 70 | +## Conclusão |
| 71 | +Classes anônimas e lambdas são recursos poderosos do Java que permitem escrever código mais conciso e expressivo. As |
| 72 | +classes anônimas são úteis para fornecer implementações rápidas de interfaces ou extensões de classes abstratas sem a |
| 73 | +necessidade de criar classes separadas. Já as lambdas permitem definir implementações de interfaces funcionais |
| 74 | +diretamente no local em que são usadas, sem criar classes anônimas. |
| 75 | + |
| 76 | +Ao dominar esses recursos, você poderá escrever código mais limpo e legível em Java, tornando seu trabalho mais |
| 77 | +eficiente e produtivo. |
0 commit comments