Getter methods allow controlled access and validation.
Using getter methods instead of public fields provides an opportunity to control how and when data is accessed, possibly adding validation or transformation. For example, in an e-commerce system, a getter for a product's name could enforce a specific format or logging access attempts, which wouldn't be possible with a public field.
Additional Notes
Why use getter methods instead of making fields public?