¿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