1
resposta

[Projeto] Resolução e incremento em projeto de estoque

Aproveitei o exercício para treinar algumas coisas e aprender outras, como o uso do LocalDate e seus métodos. Criei um método que verifica se o produto está vencido.

public class Produto {
    private String nome;
    private double preco;
    private int quantidade;

    public Produto(String nome, double preco, int quantidade) {
        this.nome = nome;
        this.preco = preco;
        this.quantidade = quantidade;
    }

    //...métodos Getters e Setters...

    @Override
    public String toString() {
        return "Produto: " + nome + "\nPreco: " + preco +
                "\nQuantidade em estoque: " + quantidade;
    }
}
public class ProdutoPerecivel extends Produto{
    LocalDate dataValidade;

    public ProdutoPerecivel(String nome, double preco, int quantidade, LocalDate dataValidade) {
        super(nome, preco, quantidade);
        this.dataValidade = dataValidade;
    }

    public LocalDate getDataValidade() {
        return dataValidade;
    }

    public void setDataValidade(LocalDate dataValidade) {
        this.dataValidade = dataValidade;
    }

    @Override
    public String toString() {
        return super.toString()+ "\nData de Validade: " + dataValidade+"\n"+verificaValidade();
    }

    public String verificaValidade(){
        boolean vencido = false;
        if(dataValidade.isBefore(LocalDate.now())){
            vencido = true;
        }
        return vencido ? "PRODUTO VENCIDO" : "";
    }
}
public class Aplicacao {
    public static void main(String[] args) {
        ArrayList<ProdutoPerecivel> perecivelArrayList = new ArrayList<>(5);
        ProdutoPerecivel yogurt = new ProdutoPerecivel("Yogurt",5.50,6, LocalDate.of(2024,10,17));
        ProdutoPerecivel manteiga = new ProdutoPerecivel("Manteiga",24.90,7, LocalDate.of(2024,11,28));
        ProdutoPerecivel requeijao = new ProdutoPerecivel("Requeijão",13.70,3, LocalDate.of(2024,12,15));
        ProdutoPerecivel queijo= new ProdutoPerecivel("Queijo",13.00,9, LocalDate.of(2024,9,6));
        ProdutoPerecivel leite = new ProdutoPerecivel("Leite",5.50,20, LocalDate.of(2024,9,17));
        perecivelArrayList.add(yogurt);
        perecivelArrayList.add(manteiga);
        perecivelArrayList.add(requeijao);
        perecivelArrayList.add(queijo);
        perecivelArrayList.add(leite);

        for (ProdutoPerecivel produto : perecivelArrayList) {
            System.out.println(produto.toString() + "\n-------------");
        }

    }
}
1 resposta

Olá Ananda. Tudo bem?

Obrigado por compartilhar seu código com a gente! Muito bom ver que você aproveitou o exercício para praticar o uso de LocalDate e criar uma lógica que verifica se o produto está vencido. Isso é uma funcionalidade super útil em sistemas de controle de estoque, e sua implementação está muito clara e Correta.

O código está bem estruturado. Parabéns. Continue com essa dedicação.

Conte com o apoio do Fórum. Bons estudos!