Pessoal, realizei o meu projeto antes de ver o video. Após eu assisti os videos, acredito que consegui atender o objetivo final do desafio. Criei uma lista de produtos e fiz uma verificação na classe "Cartão" onde é feito a validação se o valor do produto é superior ou não ao limite do meu cartão, descontando o valor se houver limite disponível e reajustando o saldo para futuras compras. Mas, eu gostaria de uma opnião se da forma que fiz, sem a classe "Compras" por exemplo ainda sim se torna válido o projeto.
package Models;
public class Produto {
private String produto;
private double preco;
private int quantidade;
public Produto(String produto, double preco, int quantidade) {
this.produto = produto;
this.preco = preco;
this.quantidade = quantidade;
}
public String getProduto() {
return produto;
}
public void setProduto(String produto) {
this.produto = produto;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
}
package Models;
public class Cartao {
private double limite;
public Cartao(double limite) {
this.limite = limite;
}
public void compra(Produto valor){
if (this.limite <= valor.getPreco()){
System.out.println("Negado! Saldo insuficiente.");
}else {
this.limite = limite - valor.getPreco();
System.out.println("Autorizada!");
}
// if (this.limite >= valor.getPreco()) {
// this.limite = limite - valor.getPreco();
// System.out.println("Novo saldo: " + this.getLimite());
// } else if (this.limite <= valor.getPreco()) {
// System.out.println("Negado! Saldo insuficiente");
// }
}
public void exibirSaldo(){
System.out.println("Saldo: "+this.getLimite());
}
public double getLimite() {
return limite;
}
public void setLimite(double limite) {
this.limite = limite;
}
}
package Main;
import Models.Cartao;
import Models.Produto;
import java.util.ArrayList;
import java.util.List;
public class Main {
static void main() {
List<Produto> compras = new ArrayList<>();
Produto p1 = new Produto("Iphone", 1200.00, 1);
Produto p2 = new Produto("Teclado Gamer Redragon", 300.00, 1);
Produto p3 = new Produto("Delux m900PRO RED", 180.00, 1);
Produto p4 = new Produto("Playstation 5 PRO", 5500.00, 1);
compras.add(p1);
compras.add(p2);
compras.add(p3);
Cartao cartaoMaicon = new Cartao(3000.00);
cartaoMaicon.compra(p1);
cartaoMaicon.exibirSaldo();
}
}