0

オブジェクト o の属性 x が o 自体によってのみアクセスできることを Java で表現する方法はありますか (つまり、ドット表記 ox を使用)。明確にするために: クラス レベルのアクセスではなく、Smalltalk のようなオブジェクト レベルのアクセスについて話しているのですか (したがって、プライベートは十分にプライベートではありません)。

申し訳ありませんが、これまで何度も質問されてきたと思いますが、検索時に間違ったキーワードを選択しているようです。

4

2 に答える 2

1

Java では不可能です (「プライベート」とマークされたフィールドほどプライベートなものはありません) が、考えてみれば論理的でもあります。他のオブジェクトのプライベート フィールドは、共通クラスのソース コードでのみ変更できます。クラスのソース コードを制御する場合は、いずれにせよ、悪いことも良いこともできます。

ところで、セキュリティ マネージャがインストールされていない場合、またはセキュリティ マネージャのポリシーで許可されている場合は、リフレクションを介して他のクラスのプライベート変数にもアクセスできます。

于 2013-01-15T12:11:35.027 に答える
0

あなたがしたいことは不可能です。すべてのオブジェクトには独自のインスタンス変数のセットがあり、それらが静的でない限り、そのオブジェクトを介してのみアクセスできます。要するに、Javaオブジェクトの属性にそのオブジェクトのみがアクセスできるようにしたい場合は、そのオブジェクトを存続させてください:)。

于 2013-01-15T12:08:21.910 に答える