为什么Java中的类“类”?

时间:2010-01-22 15:58:40

标签: java nomenclature

为什么Java的创建者在Java中使用名称“class”?这个术语来自哪里?

6 个答案:

答案 0 :(得分:17)

Java没有发明名称类 - 它曾用于以前的语言,比如C ++。

我认为名称“class”是指一类对象,如分类(或类型)。然后一个对象就是该类型的一个实例。

以下是来自dictionary.com的“class”的第一个定义:

  
      
  1. 被视为理由形成群体的一些人或事物   共同属性,特征,   品质或特质;类;排序
  2.   

所以这与我们所知的计算机科学课程一致 - “特征/品质/特征”是领域和方法。

答案 1 :(得分:15)

责备Ole-Johan DahlKristen Nygaard,显然是Simula的概念;还有Tony Hoare,他们给了他们灵感。

根据history of Simula

  

随着这种追求在整个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

换句话说,调用在编译时确定的代码。非常方便调用可选功能。