No começo, eu não via vantagem em mudar as propriedades do toString. Depois, quando fui tentar imprimir os dados de ProdutoPerecível, o toString foi uma forma muito ágil de resolver o problema! Muito legal ver o conhecimento se consolidando.
package br.com.alura.screenmatch.calculos.desafios.desafio2;
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;
}
@Override
public String toString() {
return "Produto{" +
"nome='" + nome + '\'' +
", preco=" + preco +
", quantidade=" + quantidade +
'}';
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
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 br.com.alura.screenmatch.calculos.desafios.desafio2;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Date;
public class ProdutoPerecivel extends Produto {
LocalDate dataValidade;
//LocalDate.of(2028,10,22);
DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd/MM/yyyy");
public ProdutoPerecivel(String nome, double preco, int quantidade, LocalDate dataValidade) {
super(nome, preco, quantidade);
this.dataValidade = dataValidade;
}
public LocalDate getDataValidade() {
return dataValidade;
}
@Override
public String toString() {
return super.toString() + "Validade: " + dataValidade.format(formato);
}
}
package br.com.alura.screenmatch.calculos.desafios.desafio2;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Produto> listaProdutos = new ArrayList<>();
Produto produto1 = new Produto("Calça Jeans P",119.9,75);
Produto produto2 = new Produto("Iphone 16",8999.99,8);
Produto produto3 = new Produto("Life of P",38.5,40);
listaProdutos.add(produto1);
listaProdutos.add(produto2);
listaProdutos.add(produto3);
System.out.println("Itens na lista: " + listaProdutos.size());
System.out.println("Primeiro produto: " + listaProdutos.getFirst());
System.out.println("Lista: " + listaProdutos);
Produto produto4 = new ProdutoPerecivel(
"Feijão Caldo Bom 5kg",
25.99,
250,
LocalDate.of(2025,2,22));
listaProdutos.add(produto4);
System.out.println(produto4);
}
}