Java ustawia prywatne pola wewnątrz konstruktorów

Powszechną praktyką projektową jest uczynienie zmiennych instancji prywatnymi i dostęp do nich przez publiczne narzędzia pobierające i ustawiające. Ale wiele razy widziałem próbki kodu w Internecie, które mają konstruktory, które przypisują wartości bezpośrednio do prywatnej zmiennej instancji, zamiast używać setterów wewnątrz konstruktorów. Czy czegoś mi brakuje?

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;
    }
}

questionAnswers(10)

yourAnswerToTheQuestion