enunciados-exercicios-java

Exercício Java: Calculadora funcional

Voltar

Você foi designado para criar um programa que manipula strings de várias maneiras. Para isso, você deve seguir as etapas abaixo:

  1. Crie a interface Operacao que declare um método Double calcular(Double x, Double y) para manipulação de strings. Além disso, anote a interface com @FunctionalInterface.

  2. Implemente a classe Adicao que implementa a interface Operacao. Esta classe deve conter um método para retornar a soma entre os dois valores.

  3. Implemente a classe Divisao que implementa a interface Operacao. Esta classe deve conter um método para retornar a divisão do primeiro valor pelo segundo.

  4. Crie uma classe principal com o método main do seu programa, crie objetos das classes Adicao e Divisao e teste os métodos implementados. Imprima os retornos das chamadas do método calcular ao enviar dois argumentos escolhidos por você.

    Atribua os objetos criados a uma mesma variável do tipo Operacao para aplicar polimorfismo.

  5. Na função principal (main), faça uma expressão lambda (função anônima) que implementa a interface Operacao. Essa expressão deve retornar a exponenciação entre os dois valores, sendo o primeiro a base e o segundo o expoente. Faça uma terceira atribuição, à mesma variável usada até agora, mas agora da lambda criada. Imprima o retorno da chamada do método calcular ao enviar dois argumentos escolhidos por você.

  6. Altere o tipo da variável criada no método main por uma interface que já vem no Java, especificamente do pacote java.util.function. Você deverá encontrar uma interface que se adéque aos tipos usados no exercício - existem múltiplas opções. Essas interfaces estão descritas na documentação oficial do Java. Para auxiliar, neste arquivo, você encontra a versão traduzida.

  7. Substitua as atribuições de objetos realizadas no passo 4 por expressões lambda, sem alterar as funcionalidades. A criação do objeto da classe Adicao deverá ser a implementação de uma soma e a criação do objeto da classe Divisao deverá ser a implementação de uma divisão, sempre mantendo a mesma ordem de uso dos parâmetros mencionados naquele passo.

  8. Troque o nome das chamadas do método calcular pelo nome do método característico da interface escolhida, para que o programa volte a funcionar corretamente.

  9. Crie um método na classe principal com a mesma assinatura do método calcular da interface (mesmo nome, mesmo tipo de retorno e mesma quantidade, ordem e tipos de parâmetros). Esse método deve retornar a subtração do primeiro parâmetro pelo segundo.

    O método criado deve ser estático pois será referenciado do método main, que também é estático.

    Perceba que neste momento, alguns arquivos do execício (interface e classes que a implementam) não são mais necessários. É opcional excluir esses arquivos neste ponto do exercício.

  10. Atribua a referência do método criado no passo anterior à variável da main. Novamente, imprima o retorno da chamada do método calcular ao enviar dois argumentos escolhidos por você.

Voltar