Кто-то говорит это не обязательно и запутывает. Кто-то говорит, так надо и делать и все будут ожидать что ты так сделаешь в каждом своем классе. В книге пишут, что надо. Как правильно использовать инкапсуляцию? Задавать переменные через сеттеры, получать их через геттеры? Всегда и везде?
Думаю всё зависит от проекта. Если проект будет расти, то в будущем может потребоваться какая-то логика в сеттерах и геттерах, а если логики нету, то такие сеттеры и геттеры нечем не отличаются от открытой переменной
Есть стандарт Java Bean. Так что в бинах только через геттеры и сеттеры, никаких public полей. Поле public вообще редкость. Если вас утомляет писать или генерить сеттеры и геттеры, то пользуйтесь Lombok.
Только начинаете осваивать Java? Всегда используйте инкапсуляцию. Сейчас для вас это будет лучшим вариантом.
Потом, когда напишете свою тонну кода, разберетесь, где нужны геттеры и сеттеры, а где достаточно обойтись без них.