1
resposta

[Projeto] Meu projeto desenvolvido nesse curso, queria receber algum tipo de dica ou correção se fiz algo errado.

package br.com.xandyxdev.principal;

import br.com.xandyxdev.modelos.Card;
import br.com.xandyxdev.modelos.Produtos;

import java.util.*;

public class Principal {
    public static void main(String[] args) {
        Scanner leitor = new Scanner(System.in);
        System.out.println("Digite o limite do cartão: ");

        Card card = new Card(leitor.nextDouble());

        int saidaEntrada = 1;

        List<Produtos> produtos1 = new LinkedList<>();

        while (saidaEntrada != 0 && saidaEntrada == 1) {

            System.out.println("Digite o nome do produto: ");

            String itemComprado = leitor.nextLine();

            System.out.println("Digite o valor do produto: ");

            double valorItem = leitor.nextDouble();

            Produtos produto = new Produtos(itemComprado, valorItem);

            card.realizarCompra(valorItem, produto, produtos1);

            System.out.println("\nSe deseja realizar outra compra digite 1 se deseja sair digite 0");

            saidaEntrada = leitor.nextInt();

        }

        if (produtos1.size() == 0) {
            System.out.println("Nenhuma compra realizada!");
        } else {
            System.out.println("*****************");
            System.out.println("COMPRAS REALIZADAS\n");
            Collections.sort(produtos1, Comparator.comparingDouble(Produtos::getValorProduto));
            for (Produtos produto : produtos1) {
                System.out.println(produto.getNomeProduto() + " - R$" + produto.getValorProduto());
            }
            System.out.println("\n*****************");
            System.out.println("\nSaldo disponivel: R$" + card.getLimiteCartao());
        }

    }
}
package br.com.xandyxdev.modelos;

import java.util.List;

public class Card {
    private double limiteCartao;

    public Card(double limiteCartao) {
        this.limiteCartao = limiteCartao;
    }

    public double getLimiteCartao() {
        return limiteCartao;
    }

    public boolean realizarCompra(double valorItem, Produtos item, List lista) {
        if (valorItem > this.limiteCartao) {
            System.out.println("Saldo insuficiente\n");

            System.out.println("Saldo disponivel : R$" + limiteCartao);
            return false;
        } else {
            lista.add(item);

            this.limiteCartao -= valorItem;
            return true;
        }
    }
}
package br.com.xandyxdev.modelos;

public class Produtos {
    private String nomeProduto;
    private double valorProduto;

    public Produtos(String nomeProduto, double valorProduto) {
        this.nomeProduto = nomeProduto;
        this.valorProduto = valorProduto;
    }

    public String getNomeProduto() {
        return nomeProduto;
    }

    public double getValorProduto() {
        return valorProduto;
    }

}
1 resposta

Oi, Alexandre! Como vai?

Gostei de como você estruturou as classes Card e Produtos, deixando a lógica de compra bem separada da execução no main. Isso torna o código mais organizado e fácil de manter.

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