C'est bien pour cela que le champ est déclaré en private, et la propriété en public (ou protected, ou published), ce qui force tout utilisateur de ton objet à passer par les accesseurs.
Ca me semble assez logique et propre, même si comme toi, j'ai toujours trouvé illogique la possibilité d'outrepasser le private quand on reste dans la même unité.
Maintenant, il me semble que dans la mesure où un utilisateur a accès à ton unité source et, dans le cadre d'un héritage, estime intelligent de la modifier et de passer par-dessus les visibilités...

soit il sait ce qu'il fait, soit je suppose que même en Java, on ne peut pas protéger les gens contre eux-mêmes.
Mais le but n'est pas ici de dire qu'un langage vaut mieux qu'un autre, mais d'aider notre ami

Partager