【发布时间】:2010-12-30 12:49:36
【问题描述】:
在任何 OOP 语言中都有 object-private 的概念吗?我的意思是比经典的私人访问更严格?
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: 谢谢你们,所有的答案都非常有启发性......
到目前为止,暂时的结论:
instance-private 概念存在于 2 种语言中:
1 - Smalltalk 经过数小时的谷歌搜索 :) 我找到了这个概念背后的语言!!
2 - Ruby 感谢Logan:
【问题讨论】:
-
我刚刚编辑了我的帖子以使其更加清晰......我询问了理论......在任何 OOP 语言中......
-
是什么让我“嗯?”在 C# 上,AFAIK 它只支持私有类。
-
@Johannes : 'class-private' 是 OOP 语言(C#、java ...)处理封装的正常方式...直到现在我只看到允许'对象私有' ...
-
@wj:请随意将 Smalltalk 加入您自己的答案中。 meta.stackexchange.com/questions/12513/…
-
@outis:谢谢小费!我不知道是否有可能/建议回答我们自己的问题……下次会这样做;)
标签: ruby oop private encapsulation smalltalk