在任何 OOP 语言中都有对象私有的概念吗?我的意思是比经典的私人访问更严格?
私有(或类私有)限制对类本身的访问。只有属于同一类的方法才能访问私有成员。
object-private :限制对对象本身的访问。只有可以访问成员的方法对象,并且无法编写:
public class Person {
private String secret;
public String othersSecret;
public void snoop(Person p) {
othersSecret = p.secret; //will be prohibited by the compiler
}
编辑 :
如果存在,你能给我一些例子吗?如果没有,你认为拥有这种功能很有趣吗?是否可以用其他 OOP 语言模拟它?
编辑2: 谢谢你们,所有的答案都非常有启发性......
到现在,暂时的结论:
实例私有概念存在于 2 种语言中:
1 - 经过数小时的谷歌搜索后的 Smalltalk :) 我找到了这个概念背后的语言!
对象持有的状态始终是该对象私有的。其他对象只能通过向对象发送请求(消息)来查询或更改该状态。
2 - Ruby感谢洛根: