2
respostas

fiz o exercicios com esse lógica o codigo funciona, mas gostaria de saber se ele está no padrão

package java_alura;

import java.util.ArrayList;

public class Principal {
public static void main(String[] args) {

    ArrayList<Produto> produtos = new ArrayList<>();

    produtos.add(new Produto("Tablet", 900.99));
    produtos.add(new Produto("celular", -677.00));
    produtos.add(new Produto("Mouse", 20.00));

    for (Produto listaProdutos : produtos){
        if (listaProdutos.getPreco() < 0.00){
            System.out.printf("\n %s - Produto invalido valor negativo", listaProdutos.getNome());

        } else {
            System.out.printf("\n %s - valor: %.2f",listaProdutos.getNome(),listaProdutos.getPreco());
        }
    }
    
    
    package java_alura;

public class Produto {

private String nome;

private  double preco;

public double getPreco() {
    return preco;
}

public String getNome() {
    return nome;
}

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

}

2 respostas

Oi, Daniel! Como vai?

Você estruturou bem a lógica de validação dos produtos e demonstrou atenção ao detalhe ao tratar preços negativos. Ótimo trabalho! Isso mostra que você já está aplicando o conceito de encapsulamento ao acessar os atributos apenas via getters.

Uma dica interessante para o futuro é aplicar a validação já dentro da classe Produto, impedindo a criação de objetos com valores inválidos. Veja este exemplo:


public Produto(String nome, Double preco) {
    if (preco < 0) {
        throw new IllegalArgumentException("Preço não pode ser negativo.");
    }
    this.nome = nome;
    this.preco = preco;
}

Assim, o código throw new IllegalArgumentException impede que um produto inválido seja criado, mantendo a integridade dos dados desde o início.

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

Apenas uma refatoracao no codigo para melhores praticas, e assim deixar o codigo mais legivel para os outros:

public class Principal {
    public static void main(String[] args) {

        ArrayList<Produto> produtos = new ArrayList<>();

        produtos.add(new Produto("Tablet", 900.99));
        produtos.add(new Produto("celular", -677.00));
        produtos.add(new Produto("Mouse", 20.00));

        for (Produto listaProdutos : produtos){

            if (listaProdutos.getPreco() >= 0.00){
                System.out.printf("%n %s - valor: %.2f",
                        listaProdutos.getNome(),
                        listaProdutos.getPreco());
            }
        }
    }
}
package relatorioproduto;

import org.jetbrains.annotations.Contract;

public class Produto {

    private final String nome;
    private final double preco;

    @Contract(pure = true)
    public Produto(String nome, Double preco) {
        if (preco < 0)
            throw new IllegalArgumentException("Price cannot be negative");

        this.nome = nome;
        this.preco = preco;
    }

    public double getPreco() {
        return preco;
    }

    public String getNome() {
        return nome;
    }
}