getters and setters vs public vars

This question isn’t related to any particular problem, but more to see the opinions on encapsulation for games.

I know that the idea is to make classes in such a way that code can be reused as simply as possible…

It makes sense when you are dealing with buttons, or tangible objects… however, when you are dealing with objects that are more or less abstract, like a collisionhandler, input handler, etc… and other things that will depend on the structure of the game and not necessarily be reusable elsewhere, is there any reason why it would be better to use “player.getSpeed()” then “player.setSpeed()” vs “player.speed = x”…

So, is there any other reason that I’m missing as to why I should use getters and setters over direct access?