Ээээ...ээм.. разницу можно понять из определения.
Сеттеры задают значение приватному полю класса. Геттеры возвращают значение приватного поля класса, потому что поскольку поле приватное, узнать его значение другим путем не выйдет
Геттеры и сеттеры работают в паре
На моей памяти вы первый человек который интересуется их отличиями.
Предназначение геттеров и сеттеров в языках с динамической типизацией(ваш случай) в том чтобы иметь возможность строго указать тайп хинтом, какой тип значений может принимать поле.
При статической типизации в сеттерах остаётся возможность контролировать, как происходит запись и выдача значений в то или иное поле, если вы хотите чтобы запись и чтение значений проходили с дополнительной обработкой. Например при setPassword можно было бы сразу хэшировать значение пароля.