Hola María, espero que estés bien
¡Buena pregunta! Tienes razón al considerar el uso de setters dentro del constructor. Usar setters puede ser una buena práctica si estos métodos incluyen lógica adicional, como validaciones o transformaciones de datos, que deseas aplicar cada vez que se asignan valores a los atributos.
En tu ejemplo, al usar setNombre(nombre);
y setPrecio(precio);
dentro del constructor, te aseguras de que cualquier lógica de validación o procesamiento que hayas implementado en los setters se aplique también al inicializar un objeto de la clase Producto
.
Por ejemplo, si en el setter setPrecio
tienes una validación para asegurarte de que el precio no sea negativo, al usar el setter en el constructor, esta validación se aplicará automáticamente al crear un nuevo Producto
:
public void setPrecio(double precio) {
if (precio < 0) {
throw new IllegalArgumentException("El precio no puede ser negativo");
}
this.precio = precio;
}
Esto puede prevenir errores y mantener la consistencia de los datos en tu aplicación. Sin embargo, también es importante tener en cuenta el contexto y el diseño de la clase para decidir si es necesario o no.
Espero que esta explicación te sea útil. ¡Espero haber ayudado y buenos estudios!