геттеры и сеттеры именно для этого и нужны - чтобы далеко далеко в будущем, когда будет много других классов, и которым нужны эти данные, и вдруг тип данных нужно будет поменять (например перейти от int32 к int64), то будет достаточно просто поменять тип приватных данных, поправить геттеры, чтобы они конвертили в int32 для старых зависимостей и сделать два новых 64-битных геттера для новых.
И потом уже все кто лазили за данными, либо будут потихоньку переходить на новые геттеры, либо сидеть на старых, но с ограничением.
Если у вас 2.5 класса, можете делать как угодно. Смысл геттеров и сеттеров изначально именно в том, чтобы обеспечить совместимость на десятилетия вперед.
Если вы уверены, что как бы ваш софт не разросся в будущем, можете хоть вообще без классов писать, все в одну простыню.
Все зависит от приоритетов. Нужна скорость - делаете одно. Нужна совместимость - делаете другое. Нужно и то и то - ищете архитектурный подход, где от геттеров все зависит мало.