They can lead to inconsistent or invalid object states.
Unrestricted setters allow any value to be set to a field, potentially leading to invalid states. For example, if a `Product` class has a public setter for `price`, it might be set to a negative value, which is nonsensical. Using controlled methods instead maintains logical state.
Additional Notes
Why can unrestricted setters become risky in production code?