Principes d'encapsulation et de responsabilité.
Une classe est responsable de ce qu'elle contient, et elle seule normalement peut jouer avec ses valeurs. Ca permet de contrôler ce qu'il se passe et de limiter les points d'entrés et d'accès, et donc de faciliter le refactoring et la maintenance.
Tu as certains traitements aussi que tu ne souhaites pas révéler, ou qui n'ont pas de sens en dehors de la classe, d'où la visibilité privée pour les méthodes.
Pour des cas triviaux, comme la classe Point du SDK Java par exemple, tu peux mettre en "public". Très peu d'impact, très peu d'intérêt de mettre en privée, pas besoin de contrôles poussés... grosso-modo, cela concerne tout les conteneurs simples sans logique.
Autrement... s'il y a un peu de logique, il faut pouvoir la contrôler, et éviter le plus possible les effets de bords.
Si je pousse un peu plus loin ton idée, pourquoi ne pas tout déclarer en variables globales ? Tout est accessible de partout, et comme ça, pas de problème 
Ps : tu as oubliés la visibilité par défaut, celle sans mot-clef, package.
Ps ² : "private" NE signifie ABSOLUMENT PAS que seule la classe y a accès. C'est la classe ET celles du même package ;)