package br.com.nadson.desafiosc7.modelo;
import java.util.ArrayList;
import java.util.List;
public class Compra {
private List<Produto> produtos = new ArrayList<>();
public void comprar(Produto produto) {
if (produto == null) {
throw new IllegalArgumentException("O produto não pode ser nulo.");
}
produtos.add(produto);
}
public void exibirResumoCompra() {
if (produtos.isEmpty()) {
System.out.println("Nenhum produto comprado.");
return;
}
System.out.println("Produtos comprados:");
produtos.forEach(Produto::imprimirRelatorio);
System.out.printf("Total da compra: R$ %.2f%n", calcularTotal());
}
public double calcularTotal() {
return produtos.stream()
.mapToDouble(Produto::precoTotal)
.sum();
}
}
package br.com.nadson.desafiosc7.modelo;
public class Produto {
private String nome;
private int quantidade;
private double preco;
public Produto(String nome, double preco, int quantidade) {
this.nome = nome;
this.preco = preco;
this.quantidade = quantidade;
}
public double getPreco() {
return preco;
}
public double precoTotal() {
return preco * quantidade;
}
public void imprimirRelatorio() {
String rel = "Produto: " + nome + "\nPreço: " + String.format("R$ %.2f", preco) + "\nQuantidade: " + quantidade;
System.out.println("-----------------------");
System.out.println(rel);
}
}
package br.com.nadson.desafiosc7.principal;
import br.com.nadson.desafiosc7.modelo.Compra;
import br.com.nadson.desafiosc7.modelo.Produto;
public class CarrinhoDeCompras {
public static void main(String[] args) {
Produto produto1 = new Produto("Notebook", 2500.00, 2);
Produto produto2 = new Produto("Smartphone", 1500.00, 1);
Produto produto3 = new Produto("Headphones", 300.00, 3);
Compra compra = new Compra();
compra.comprar(produto1);
compra.comprar(produto2);
compra.comprar(produto3);
compra.exibirResumoCompra();
}
}