访问控制修饰符的历史,例如public / private / protected

时间:2009-08-26 12:49:56

标签: oop history

这些关键字和概念是如何变为现实的?使它们出现的力量和问题是什么?第一语言是什么?

实际上,它不只是关于public / private / protected,而是强制执行某些规则的所有关键字(abstractfinalinternal)。

但是,请不要假设。如果您知道答案或答案的至少一部分,如果您过着那些时刻,请回答。非常感谢参考文献。

4 个答案:

答案 0 :(得分:8)

被认为是第一种OO语言的

Simula (1967)具有名为protected and hidden的修饰符。我认为公共是默认的,我不记得了。它还使用虚拟

并且,感谢Pavel,Simula介绍了这个,向下转发和最重要的关键字(和概念)。参考类型。

Smalltalk (1980)是一种后来但更为基础的OO语言,它为消息提供了方法。这基本上与虚函数功能相同。消息和类后来在C(非OO)中模仿,以提供Windows API多态行为。但仍然需要丑陋的switch语句和函数指针来替换继承。

据我所知,首次使用属性的是Delphi(Object Pascal,< 1994)。

答案 1 :(得分:2)

public,private和protected access modifiers来自C ++。 It seems公共和私人已经存在于“C with classes”中,这是C ++的短暂前身。这可能在The design and Evolution of C++中有详细说明。

认为抽象和最终来自Java和内部来自C#。

答案 2 :(得分:0)

这种事情从多个语言设计师开始询问“这个概念的简单逻辑名称是什么”?然后,随着时间的推移某些名称变得流行(有时因为它们是好名字,有时只是因为)。增加20年,大多数人最终根据他们所看到的内容选择相同的名称。

也许是一个类似的问题,询问如何将新单词添加到(例如)英语中。

答案 3 :(得分:0)

对于C ++,私有和公共保护的起源来自Stroustrup使用C With Classes进行的实验,但是来自一个更老的系统 - 剑桥CAP计算机。这在“C ++的设计与演变”的第2.10节中有所描述。

至于受保护的,过去曾经有过一段时间。我没有很好的参考。