Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Resolução do exercicio com complemento do for

Estava verificando se a reposta da professora e meu projeto estava batendo, quando eu me deparo com a função for para exibição da lista, da forma que estava não tinha entendido muio bem, mas acabei arriscando e de uma forma funcionou. Deixar compartilhado para quem quiser saber. O que esta mais claro a letra foi substituido pelo construtor

Classe principal:

public class Main {
    public static void main(String[] args) {
        var produto1 = new ProdutoPerecivel("Chocolate", 5.99, 3, "02/10/2024");
        //produto1.setNome("Chocolate"); essa linha for substituida pelo construtor ProdutoPerecivel!
        //produto1.setPreco(5.99); essa linha for substituida pelo construtor ProdutoPerecivel!
        //produto1.setQuantidade(3); essa linha for substituida pelo construtor ProdutoPerecivel!

        var produto2 =  new ProdutoPerecivel("Doce de Leite", 8.99, 1, "10/05/2025");
       //produto2.setNome("Doce de Leite"); essa linha for substituida pelo construtor ProdutoPerecivel!
        //produto2.setPreco(8.99); essa linha for substituida pelo construtor ProdutoPerecivel!
        //produto2.setQuantidade(1); essa linha for substituida pelo construtor ProdutoPerecivel!

        var produto3 = new ProdutoPerecivel("Cocada", 2.99, 5, "06/04/2024");
       //produto3.setNome("Cocada"); essa linha for substituida pelo construtor ProdutoPerecivel!
        //produto3.setPreco(2.99); essa linha for substituida pelo construtor ProdutoPerecivel!
        //produto3.setQuantidade(5); essa linha for substituida pelo construtor ProdutoPerecivel!

        ArrayList<Produto> listaProdutos = new ArrayList<>();
        listaProdutos.add(produto1);
        listaProdutos.add(produto2);
        listaProdutos.add(produto3);

        System.out.println("Tamanho da Lista: " + listaProdutos.size());
        for (int i = 0; i < listaProdutos.size(); i++ ) {
            System.out.println(listaProdutos.get(i));
        }
    }
}
2 respostas
solução!

Olá, Daniel!

Pelo que entendi, você conseguiu substituir as linhas de código onde usava os métodos set para atribuir valores às variáveis de instância dos seus objetos ProdutoPerecivel por um construtor que recebe esses valores como parâmetros. Isso é uma prática muito comum e ajuda a tornar o código mais limpo e eficiente. Parabéns por ter chegado a essa solução!

Em relação ao loop for que você usou para exibir a lista, ele está correto. O que você fez foi criar um loop que começa com i = 0 e continua enquanto i for menor que o tamanho da lista. Em cada iteração do loop, ele imprime o elemento da lista no índice i usando o método get(i). Isso é uma maneira muito comum de percorrer uma lista em Java.

No entanto, se você quiser tornar o código ainda mais eficiente e fácil de ler, você pode usar o loop for-each, que é uma estrutura de controle especializada para percorrer coleções e arrays. Aqui está como você poderia reescrever seu loop for usando o for-each:

for (Produto produto : listaProdutos) {
    System.out.println(produto);
}

Neste caso, a variável produto assume o valor de cada elemento da listaProdutos, um de cada vez, e então você imprime o produto. Isso evita a necessidade de usar o método get(i) para acessar os elementos da lista.

Espero ter ajudado e bons estudos!

Ah sim obrigado, acabei procurando mais sobre o for each e faz muito mais sentido usá-lo para listas e coleções. Na primeira vez não tinha entendido por o for estava nesse formato. kkkkk