Avatar ·

¿Por qué se necesitan getters y setters si simplemente se pueden hacer los campos públicos?

¡Hola a todos! Acabo de empezar a estudiar Java y POO, y tengo una pregunta que probablemente sea tonta. En todos los libros y cursos dicen: "Siempre hagan los campos private, y el acceso a ellos — a través de getters y setters". Pero no entiendo, ¿por qué complicarlo así? Tengo una clase `Person`: ```java public class Person { public String name; public int age; } ``` Y puedo escribir tranquilamente: ```java Person person = new Person(); person.name = "Vasya"; person.age = 25; System.out.println(person.name); ``` ¡Funciona! ¿Por qué debería escribir 20 líneas extra de código: ```java public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } ``` Solo para luego hacer lo mismo? `person.setName("Vasya")` — es