Avatar ·

Pourquoi avons-nous besoin de getters et setters (accesseurs) en Java si on peut simplement rendre les champs publics ?

Bonjour à tous ! J'ai commencé à étudier Java et la POO, et j'ai une question. Je vois souvent que dans le code, pour chaque champ d'une classe, on écrit des getters et setters. Par exemple : ```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; } } ``` Mais on pourrait faire plus simple : ```java public class Person { public String name; public int age; } ``` Et accéder directement : `person.name = "Vassia"`. C'est plus court et plus clair ! Pourquoi perdre du temps à écrire ces méthodes ? Je comprends que cela a un lien avec l'encapsulation, mais en pratique je ne vois pas de différence. Expliquez-moi, s'il vous plaît, à quoi elles servent vraiment, et pas seulement "c'est la coutume". Quel est le sens pratique ? Je suis particulièrement intéressé par la façon dont cela aide lors de la modification du code à l'avenir.