Classe Produto.java
public class Produto {
private String nome;
private double preco;
private int quantidade;
// Construtor com parâmetros
public Produto(String nome, double preco, int quantidade) {
this.nome = nome;
this.preco = preco;
this.quantidade = quantidade;
}
// Método toString para exibir os dados
@Override
public String toString() {
return "Produto{nome='" + nome + "', preco=" + preco + ", quantidade=" + quantidade + "}";
}
}
Classe ProdutoPerecivel.java
import java.time.LocalDate;
public class ProdutoPerecivel extends Produto {
private LocalDate dataValidade;
// Construtor com super para inicializar Produto
public ProdutoPerecivel(String nome, double preco, int quantidade, LocalDate dataValidade) {
super(nome, preco, quantidade);
this.dataValidade = dataValidade;
}
// toString herdado e complementado
@Override
public String toString() {
return super.toString() + ", dataValidade=" + dataValidade;
}
}
Classe Principal.java
import java.util.ArrayList;
import java.time.LocalDate;
public class Principal {
public static void main(String[] args) {
// Lista de produtos
ArrayList<Produto> listaDeProdutos = new ArrayList<>();
// Adicionando produtos
listaDeProdutos.add(new Produto("Notebook", 3500.0, 5));
listaDeProdutos.add(new Produto("Mouse", 80.0, 20));
listaDeProdutos.add(new Produto("Teclado", 120.0, 15));
// Tamanho da lista
System.out.println("Tamanho da lista: " + listaDeProdutos.size());
// Recuperando produto por índice
System.out.println("Produto no índice 1: " + listaDeProdutos.get(1));
// Imprimindo todos os produtos
System.out.println("Lista de produtos:");
for (Produto p : listaDeProdutos) {
System.out.println(p);
}
// Criando um ProdutoPerecivel
ProdutoPerecivel leite = new ProdutoPerecivel("Leite", 6.50, 10, LocalDate.of(2025, 6, 10));
System.out.println("Produto perecível:");
System.out.println(leite);
}
}