1
resposta

Fiz o código da seguinte forma:

Classse Produto

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


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

    @Override
    public String toString() {
        return nome + " " + quantidade + " " + " " + preco;
    }
}

Classe ProdutoPerecivel


public class ProdutoPerecivel extends Produto{

        private String dataValidade;

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

    }

    @Override
    public String toString() {
        return super.toString() + "Validade: " + dataValidade;
    }
}

Classe Main

import java.util.ArrayList;

public class MainProduto {
    public static void main(String[] args) {
        Produto produto = new Produto("Fone Bluetooth",5,19.50);
        ArrayList<Produto> objetosProdutos = new ArrayList<>();
        objetosProdutos.add(produto);
        System.out.println(objetosProdutos.toString());
        objetosProdutos.add(new Produto("Teclado mecânico",28, 185.99));
        objetosProdutos.add(new Produto("Teclado Básico RGB",11 ,89.90 ));
        System.out.println(objetosProdutos.toString());
        System.out.println(objetosProdutos.size());
        System.out.println(objetosProdutos.get(2));

        System.out.println(objetosProdutos.toString());


        ProdutoPerecivel produtoPerecivel = new ProdutoPerecivel(
          "Refil Tinta EPSON", 29, 38.99,  "05/27"
        );
        objetosProdutos.add(produtoPerecivel);
        System.out.println(objetosProdutos.toString());
    }
}
1 resposta

Olá, Arthur! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de herança para especializar a classe Produto, utilizou muito bem a sobrescrita do método toString para personalizar a saída e ainda compreendeu a importância da coleção ArrayList para armazenar e manipular múltiplos objetos.

Uma dica interessante para o futuro é formatar melhor a saída do toString, deixando os dados mais legíveis. Assim:

@Override
public String toString() {
    return String.format("Nome: %s | Quantidade: %d | Preço: R$ %.2f", nome, quantidade, preco);
}

Isso faz com que a impressão dos objetos seja mais clara e organizada, facilitando a leitura dos atributos.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!