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);
}
}
}