Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Minha solução para o desafio

Boa noite, tive certa dificuldade para completar o desafio de primeira portanto busquei ajuda nos vídeos, ainda sim fiz alguns passos de forma diferente, gostaria que dessem uma olhada.

import java.util.ArrayList;
import java.util.List;

public class Cartão {
    private double limite;
    private double saldo;
    private List<Compra> listaDeCompras;

    public Cartão(double limite) {
        this.limite = limite;
        this.saldo = limite;
        this.listaDeCompras = new ArrayList<>();
    }

    public double getLimite() {
        return limite;
    }

    public double getSaldo() {
        return saldo;
    }

    public List<Compra> getListaDeCompras() {
        return listaDeCompras;
    }
    public boolean comprando(Compra compra){
        if (this.saldo>compra.getValorDaCompra()){
            saldo-=compra.getValorDaCompra();
            listaDeCompras.add(compra);
            System.out.println("Compra adicionada com sucesso");
            return true;
        }else {
            System.out.println("Você não tem saldo suficiente");
            return false;
        }



}}
public class Compra implements Comparable<Compra> {
    private String TipoDeCompra;
    private double valorDaCompra;

    public Compra(String tipoDeCompra, double valorDaCompra) {
        TipoDeCompra = tipoDeCompra;
        this.valorDaCompra = valorDaCompra;
    }

    public String getTipoDeCompra() {
        return TipoDeCompra;
    }

    public double getValorDaCompra() {
        return valorDaCompra;
    }

    @Override
    public String toString() {
        return "Compra: " + TipoDeCompra + "valor:" + valorDaCompra;
    }


    @Override
    public int compareTo(Compra outraCompra) {
        return Double.valueOf(this.valorDaCompra).compareTo(Double.valueOf(outraCompra.valorDaCompra));
    }
}
import java.util.Collections;
import java.util.Scanner;

public class principal {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        double limite;
        System.out.println("********************************");
        System.out.println("Informe o limite do seu cartão: ");
        limite=scanner.nextDouble();
        Cartão cartão1=new Cartão(limite);
        int i=1;
        while (i==1 && i!=0){
            System.out.println("Informe o que deseja comprar:");
            String compra=scanner.next();
            System.out.println("Agora informe o valor da peça: ");
            double valor =scanner.nextDouble();
            Compra compra1=new Compra(compra,valor);
            cartão1.comprando(compra1);
            System.out.println("Digite 1 para continuar comprando ou 0 para sair: ");
            i= scanner.nextInt();

        }
        Collections.sort(cartão1.getListaDeCompras());
        for (Compra item: cartão1.getListaDeCompras()) {
            System.out.println(item);

        }
    }
}
1 resposta
solução!

Olá, Breno! Como vai?

Primeiramente, parabéns por ter concluído o desafio! É normal ter dificuldades e precisar de ajuda, especialmente quando estamos aprendendo algo novo. O importante é continuar tentando e buscando entender os conceitos.

Analisando o seu código, percebo que você conseguiu implementar a lógica do desafio de forma eficaz. Você criou as classes Cartão e Compra, e na classe principal você implementou o menu para lançamento de compras e a exibição da lista de compras realizadas e ordenadas por valor, que era exatamente o que o desafio pedia.

Sobre a sua implementação do método comprando na classe Cartão, você fez uma verificação para checar se o saldo é maior que o valor da compra, o que está correto. Caso seja, você subtrai o valor da compra do saldo e adiciona a compra na lista de compras, exatamente como deveria ser.

Na classe Compra, você implementou a interface Comparable para poder ordenar as compras pelo valor, o que também está correto. O método compareTo está comparando corretamente os valores das compras.

Por fim, na classe principal, você implementou o menu de compras e a lógica para adicionar as compras na lista do cartão. Você também ordenou a lista de compras antes de exibi-la, o que está correto.

Portanto, acredito que sua solução para o desafio está correta e bem implementada. Parabéns novamente pelo seu esforço e dedicação!

Espero ter ajudado e bons estudos!