Java устанавливает приватные поля внутри конструкторов
Обычная практика проектирования - сделать переменные экземпляра частными и иметь общедоступные методы получения и установки для доступа к ним. Но много раз я видел в Интернете примеры кода, в которых есть конструкторы, которые присваивают значения непосредственно закрытой переменной экземпляра, а не используют сеттеры внутри конструкторов. Я что-то пропустил?
public class Person{
private String name;
public Person(String name){
//is this right, seems like the whole encapsulation purpose is defeated
this.name = name;
//shouldn't this be used
setName(name);
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
}