1
resposta

[Projeto] CarrinhoDeCompras

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();
    }
}
1 resposta

Oi, Nadson! Como vai?

Com base no que você explicou, gostei de como organizou a lógica do carrinho usando métodos separados para somar e exibir o relatório. Ficou claro e bem distribuído.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!