为什么Java的创建者在Java中使用名称“class”?这个术语来自哪里?
答案 0 :(得分:17)
Java没有发明名称类 - 它曾用于以前的语言,比如C ++。
我认为名称“class”是指一类对象,如分类(或类型)。然后一个对象就是该类型的一个实例。
以下是来自dictionary.com的“class”的第一个定义:
- 被视为理由形成群体的一些人或事物 共同属性,特征, 品质或特质;类;排序
醇>
所以这与我们所知的计算机科学课程一致 - “特征/品质/特征”是领域和方法。
答案 1 :(得分:15)
责备Ole-Johan Dahl和Kristen Nygaard,显然是Simula的概念;还有Tony Hoare,他们给了他们灵感。
随着这种追求在整个1966年的夏季和秋季继续进行,他们越来越关注Tony Hoare的记录类构造中的机会,首先在ALGOL公告中提出。在仔细研究了Hoare的记录提案之后,他们最终得出的结论是,尽管它显然具有许多非常有用的特性,但它未能完全满足他们的要求。他们真正想要的是某种具有记录类属性的通用过程概念。
他们的问题的答案突然出现在1966年12月,当时引入了前缀的想法。后来称为对象的进程现在可以被视为由两个层组成:前缀层包含对其前任和后继的引用以及许多其他属性,以及包含所讨论对象的属性的主层。除了这个重要的新功能外,他们还引入了类概念,大致可以将其描述为SIMULA I活动概念的高度精炼版本。这个强大的新概念使得建立连接对象的类和子类层次结构成为可能。
当然,对对象进行分类的想法远远超过任何编程语言。
答案 2 :(得分:5)
我认为“阶级”这个词的起源早于计算机科学领域,事实上。分类学已经存在了很长时间,我冒昧地说它的根源在于哲学中的某个地方,或者在生物学中可能不那么抽象。编程语言人员刚刚采用了另一个领域的类比:)。
答案 3 :(得分:1)
该类是定义,元数据;对象是实例。这是正常的OOP语言使用。
答案 4 :(得分:0)
因为它们用于“分类”相同性质的物体。
员工对象与Account对象不同。
所有这些concepts are the base of Object Oriented Technology。 Java恰好是面向对象的编程,这就是他们首先使用所有这些术语的原因。
答案 5 :(得分:0)
请注意,Java中的Class类是由反射类引入的,而不是纯粹的意外。
这里有Class和Method对象,允许你做类似的事情:
Class cls = java.lang.String.class;
// By obtaining a list of all declared methods.
Method[] methods = cls.getDeclaredMethods();
// By obtaining a list of all public methods, both declared and inherited.
methods = cls.getMethods();
for (int i=0; i<methods.length; i++) {
Class returnType = methods[i].getReturnType();
Class[] paramTypes = methods[i].getParameterTypes();
process(methods[i]);
}
// By obtaining a particular Method object.
// This example retrieves String.substring(int).
try {
Method method = cls.getMethod("substring", new Class[] {int.class});
process(method);
} catch (NoSuchMethodException e) {
}
http://www.exampledepot.com/egs/java.lang.reflect/Methods.html
换句话说,调用在编译时确定的代码。非常方便调用可选功能。