Ведь публичное поле означает что извне могут перевести объект в невалидное состояние, например в поле int Age могут присвоить отрицательное значение или значение больше 1000.
так с этим никто не спорит, но в целом значимость геттеров/сеттеров преувеличена, в 99.9% случаев они просто устанавливают/возвращают значение. Проблемы будут только если твой код кто-то заюзает, и ты вдруг вспоминаешь, что неплохо бы валидацию впилить на метод