To maintain control over how and when a field is modified.
Not every field needs a setter, especially if the field should not change after initial assignment. This approach helps to maintain consistency and integrity of the object's state. For instance, in an order system, the `orderId` might be assigned once when the order is created and should remain unchanged, hence it wouldn't have a setter.
Additional Notes
Why might you avoid creating setters for every field?