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

Dúvida Java trabalhando com listas

Boa tarde!! curso: Java trabalhando com listas e coleções de dados 08Desafio: hora da prática Questão: Crie uma classe Produto com propriedades como nome e preço. Em seguida, crie uma lista de produtos e utilize um loop para calcular e imprimir o preço médio dos produtos.

Uma dúvida o meu código ficou diferente da aula poderia comentar?

Segue a resposta da aula: import java.util.ArrayList;

class Produto { private String nome; private double preco;

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

public String getNome() {
    return nome;
}

public double getPreco() {
    return preco;
}

}

public class Main { public static void main(String[] args) { Produto produto1 = new Produto("Ar condicionado", 2000.0); Produto produto2 = new Produto("Aquecedor", 800.0); Produto produto3 = new Produto("Ventilador", 150.0);

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

    double somaPrecos = 0;
    for (Produto produto : listaProdutos) {
        somaPrecos += produto.getPreco();
    }

    double precoMedio = somaPrecos / listaProdutos.size();
    System.out.println("Preço médio dos produtos: " + precoMedio);
}

}

Aqui segue a minha solução:

package br.com.screenmatch.desafio8Lista.produto; public class Produto { private String nome; private double preco;

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

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;
}

@Override
public String toString() {
    return "Produto : "+nome+" Preço: "+preco+"\n";
}

}

package br.com.screenmatch.desafio8Lista.produto; import java.util.ArrayList; public class TestaProduto { public static void main(String[] args) { ArrayList produtosLista = new ArrayList<>(); produtosLista.add(new Produto("CEL",2000)); produtosLista.add(new Produto("Table",980));

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

    double somaPrecos = 0;
    for (Produto produto : produtosLista) {
        somaPrecos += produto.getPreco();
    }

    double precoMedio = somaPrecos / produtosLista.size();
    System.out.println("Preço médio dos produtos: " + precoMedio);
}

} Desde já agradeço.

2 respostas

Olá, Claudeny! Tudo bem?

Pelo que percebi, seu código está correto e atende ao desafio proposto. A diferença entre a solução da aula e a sua está principalmente na adição dos métodos setNome(), setPreco() e toString().

Os métodos setNome() e setPreco() permitem que você altere o nome e o preço de um produto depois que ele foi criado, o que não é possível na solução da aula. Isso pode ser útil em situações onde você precisa atualizar essas informações.

Já o método toString() é usado para retornar uma representação do objeto Produto em forma de string. No seu caso, você está retornando o nome e o preço do produto, o que pode ser útil para imprimir essas informações de uma maneira mais legível.

Além disso, percebi que você criou um pacote para organizar suas classes, o que é uma boa prática de programação.

A única diferença que notei é que você não criou os produtos individualmente antes de adicioná-los à lista, como foi feito na solução da aula. Em vez disso, você criou os produtos diretamente ao adicioná-los à lista. Isso também está correto e é uma questão de preferência.

Por exemplo, na solução da aula:

Produto produto1 = new Produto("Ar condicionado", 2000.0);
listaProdutos.add(produto1);

No seu código:

produtosLista.add(new Produto("CEL",2000));

Ambas as abordagens estão corretas e resultam no mesmo resultado final.

Espero ter ajudado e bons estudos!

solução!

Ok, obrigado.