Oi, João! Como vai?
Agradeço por compartilhar.
Gostei de como você já aplicou a validação diretamente no construtor e utilizou o this corretamente para acessar os atributos. Isso mostra que você entendeu bem a ideia de garantir que o objeto já nasça em um estado válido, o que é um ponto importante no encapsulamento.
Uma dica interessante para o futuro é usar getters e setters para controlar melhor o acesso aos atributos.
private double preco;
public void setPreco(double preco) {
if (preco < 0) {
this.preco = 0;
} else {
this.preco = preco;
}
}
public double getPreco() {
return this.preco;
}
Esse código garante que o preço nunca seja negativo ao ser alterado, centralizando a validação em um único ponto.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!