/ / Rendre un attribut d'un objet Java uniquement accessible par cet objet - java, private-members

Rendre un attribut d'un objet Java uniquement accessible par cet objet - java, private-members

Y at-il un moyen en Java d’exprimer qu’unL'attribut x d'un objet o est accessible (je veux dire par la notation de points o.x) uniquement par o lui-même? Pour être clair: je parle d’accès au niveau objet comme en Smalltalk, pas d’accès au niveau classe (donc privé n'est pas assez privé)?

Je suis désolé - je suis sûr que cela a déjà été demandé à plusieurs reprises, mais je semble choisir les mauvais mots clés lors de la recherche.

Réponses:

1 pour la réponse № 1

Ce n’est pas possible en Java (rien n’est plusprivé que les champs marqués comme "privé"), mais si vous y réfléchissez, c’est aussi logique: vous pouvez modifier les champs privés d’autres objets uniquement dans le code source de la classe commune, et si vous contrôlez le code source de la classe, vous pouvez faire des choses mauvaises ou bonnes quand même.

En passant, vous pouvez accéder aux variables même privées d’autres classes par réflexion, si aucun gestionnaire de sécurité n’est installé, ou si la politique du gestionnaire de sécurité le permet, voir: Pourquoi est-il autorisé à accéder aux champs privés Java via réflexion?


0 pour la réponse № 2

Ce que vous voulez faire n'est pas possible. Chaque objet a son propre ensemble de variables d’instance et n’est accessible par l’intermédiaire de cet objet que s’ils ne sont pas statiques. En bref, si vous voulez un attribut d’objet Java accessible uniquement par cet objet, conservez cet objet en vie :) .