enunciados-exercicios-java

Exercício Java: Manipulação de produtos

Voltar

Vamos criar um programa em Java para trabalhar com uma lista de produtos. Cada produto terá um nome, um preço e um desconto associado. Utilizaremos diferentes tipos de interfaces funcionais para manipular esses produtos.

Passo 1: Definindo a classe produto

Crie uma classe chamada Produto com os seguintes atributos:

Dica: implemente um construtor que receba todos os atributos e o método toString para auxiliar no seu teste.

Passo 2: Implementando as funções anônimas

Agora, vamos criar funções anônimas utilizando diferentes tipos de interfaces funcionais para manipular os produtos. Crie uma classe com método main e faça o que é solicitado:

Dica: Pacote java.util.function

  1. Supplier - retornarListaDeProdutos: Implemente uma função anônima que retorne uma lista com 5 produtos diferentes.

  2. Function - calcularPrecoFinal: Implemente uma função anônima que receba um produto e retorne o preço final após aplicar o desconto.

  3. Predicate - temFrete: Implemente uma função anônima que receba um preço e retorne se ele possui valor de frete. Caso o preço seja menor que R$ 50 retorne verdadeiro, e caso contrário retorne falso.

  4. UnaryOperator - acrescerFrete: Crie uma função anônima que receba um preço e acresça o valor de frete (R$ 9.99) caso se aplique (use o Predicate implementado anteriormente).

  5. UnaryOperator - acrescerImposto: Crie uma função anônima que receba um preço e acresça 4.5% referente ao imposto municipal.

  6. UnaryOperator - arredondarPreco: Crie uma função anônima que receba um preço e arredonde para duas casas decimais.

  7. BiConsumer - imprimirProduto: Crie uma função anônima que receba um produto e seu novo preço e imprima o nome do produto e o preço recebido.

Passo 3: Unindo todas as funções

Faça um código que use as funções criadas anteriormente, encadeando-as através dos métodos andThen das interfaces Function e UnaryOperator:

  1. Calcule o preço do produto com desconto;
  2. Acrescente o valor de frete (caso se aplique);
  3. Acrescente o valor de imposto;
  4. Arredonde o valor para duas casas decimais;
  5. Imprima o nome do produto com seu novo preço;
  6. Faça isso para todos os produtos existentes, usando o forEach da lista do Supplier.

Veja, a seguir, uma sugestão de como o código deve funcionar.

Atenção: antes de ver o código abaixo, tente fazer por conta própria, pois este trecho já faz parte da resposta!

Ver código ```java retornarListaDeProdutos.get().forEach(produto -> { Double novoPreco = calcularPrecoFinal .andThen(acrescerFrete) .andThen(acrescerImposto) .andThen(arredondarPreco) .apply(produto); imprimirProduto.accept(produto, novoPreco); } ); ```

Voltar