package desafio.construtores;
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;
}
public String getNome() {
return nome;
}
public double getPreco() {
return preco;
}
public int getQuantidade() {
return quantidade;
}
@Override
public String toString() {
return """
Produto: %s | Preço: %.2f | Quantidade: %d | Total: %.2f""".formatted(nome, preco, quantidade, (preco * quantidade));
}
}
package desafio.construtores;
import java.time.LocalDateTime;
public class ProdutoPerecivel extends Produto {
LocalDateTime dataCadastro;
LocalDateTime dataValidade;
public ProdutoPerecivel(String nome, double preco, int quantidade) {
super(nome, preco, quantidade);
this.dataCadastro = LocalDateTime.now();
this.dataValidade = dataCadastro.minusMonths(3) ;
}
public LocalDateTime getDataCadastro() {
return dataCadastro;
}
public LocalDateTime getDataValidade() {
return dataValidade;
}
public boolean estaVencido(){
return dataCadastro.isBefore(dataValidade);
}
@Override
public String toString() {
return """
Produto Perecivel: %s | Preço: %.2f | Quantidade: %d | Total: %.2f | Vencimento: %s"""
.formatted(super.getNome(), super.getPreco(), super.getQuantidade(), (super.getPreco() * super.getQuantidade()),
(estaVencido() ? "Sim" : "Não"));
}
}
package desafio.construtores;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Produto> produtos = new ArrayList<>();
Produto p1 = new Produto("Iphone 15", 2999.90, 10);
Produto p2 = new Produto("Iphone 16", 4999.90, 10);
Produto p3 = new Produto("Iphone 17", 7999.90, 10);
produtos.add(p1);
produtos.add(p2);
produtos.add(p3);
System.out.println("Tamanho da Lista de Produtos: " + produtos.size());
System.out.println("Produto: " + produtos.get(2).getNome());
System.out.println("Imprimindo a Lista de Produtos:");
for (Produto produto : produtos) {
System.out.println(produto);
}
ProdutoPerecivel perecivel = new ProdutoPerecivel("Leite", 18.59, 10);
System.out.println("Imprimindo Produto Precevivel: ");
System.out.println(perecivel);
}
}
Resultado Esperado:
Tamanho da Lista de Produtos: 3
Produto: Iphone 17
Imprimindo a Lista de Produtos:
Produto: Iphone 15 | Preço: 2999,90 | Quantidade: 10 | Total: 29999,00
Produto: Iphone 16 | Preço: 4999,90 | Quantidade: 10 | Total: 49999,00
Produto: Iphone 17 | Preço: 7999,90 | Quantidade: 10 | Total: 79999,00
Imprimindo Produto Precevivel:
Produto Perecivel: Leite | Preço: 18,59 | Quantidade: 10 | Total: 185,90 | Vencimento: Não