0

Java 中有没有一种方法可以表示对象 o 的属性 x 只能由 o 本身访问(我的意思是点符号 ox)?明确一点:我说的是 Smalltalk 中的对象级访问,而不是类级访问(因此私有还不够私有)?

对不起 - 我敢肯定这个问题之前已经被问过很多次了,但我在搜索时似乎选择了错误的关键字。

4

2 回答 2

1

这在 Java 中是不可能的(没有什么比标记为“私有”的字段更私有了),但如果你仔细想想,这也是合乎逻辑的:你只能在公共类源代码中修改其他对象的私有字段,并且如果您控制类源代码,那么无论如何您都可以做任何坏事或好事。

顺便说一句,如果没有安装安全管理器,或者安全管理器的策略允许,您甚至可以通过反射访问其他类的私有变量,请参阅:为什么允许通过反射访问 Java 私有字段?

于 2013-01-15T12:11:35.027 回答
0

你想做的事情是不可能的。每个对象都有自己的一组实例变量,并且只能通过该对象访问,只要它们不是静态的。所以简而言之,如果您想要一个只能由该对象访问的 Java 对象的属性,请保持该对象处于活动状态:)。

于 2013-01-15T12:08:21.910 回答