Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Cadastro de produtos com validação

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

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

    public void setPreco(double preco){
        if(preco <= 0){
            System.out.println("Erro: preço deve ser maior que zero.");
            this.preco = 0.00;
        } else {
            this.preco = preco;
        }
    }

    public String getNome() {
        return nome;
    }

    public double getPreco() {
        return preco;
    }

    public void exibirProduto(){
        System.out.println("\nProduto: " + nome);
        System.out.printf("Preço: R$ %.2f", preco );
    }
}
public class Principal {
    public static void main(String[] args) {
        Produto produto1 = new Produto("Mouse", -50);
        Produto produto2 = new Produto("Teclado", 60);


        produto1.exibirProduto();
        produto2.exibirProduto();

    }
}
1 resposta
solução!

Oi, Enzo! Como vai?

Você aplicou corretamente o encapsulamento ao deixar os atributos privados e centralizar a validação no método setPreco(). Isso mostra um cuidado importante com a integridade do objeto, porque o preço não pode ser definido de qualquer jeito.

Uma dica interessante para o futuro é usar IllegalArgumentException quando o valor for inválido, porque isso deixa a validação mais clara e evita manter um produto com preço 0.0 sem necessidade. Veja este exemplo:


public void setPreco(double preco) {
    if (preco <= 0) {
        throw new IllegalArgumentException("Preco deve ser maior que zero");
    }
    this.preco = preco;
}

Neste exemplo, o código interrompe a atribuição quando o preço é inválido, ajudando a identificar o problema logo no momento da execução.

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