2

为什么 Java 的创建者在 Java 中为类使用名称“类”?这个词是从哪里来的?

4

6 回答 6

17

Java 并没有发明名称类——它以前在语言中使用过,比如 C++。

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

这是dictionary.com对“类”的第一个定义:

  1. 由于共同的属性、特征、品质或特征而被视为组成一个群体的一些人或事物;种类; 种类。

所以这与我们所知道的计算机科学课程是正确的——“特征/质量/特征”是领域和方法。

于 2010-01-22T16:01:28.697 回答
15

责备Ole-Johan DahlKristen Nygaard,他们显然是Simula概念的发起者;还有给他们灵感的托尼·霍尔。

根据Simula 的历史

随着这一追求在 1966 年夏秋两季的进行,他们越来越关注托尼·霍尔 (Tony Hoare) 的创纪录类构造中蕴含的机会,该构造首次出现在 ALGOL 公报中。1965 年 1 月 21 日。在仔细检查了 Hoare 的唱片提案后,他们最终得出结论,尽管它显然具有许多非常有用的特性,但它并不能完全满足他们的要求。他们真正寻找的是某种具有记录类属性的广义流程概念。

他们的问题的答案突然出现在 1966 年 12 月,当时引入了前缀的概念。一个过程,后来称为对象,现在可以被视为由两层组成:一个前缀层包含对其前任和后继的引用以及许多其他属性,以及一个包含相关对象属性的主层。除了这个重要的新特性,他们还引入了类概念,大致可以说是 SIMULA I 活动概念的高度提炼版。这个强大的新概念使得建立连接对象的类和子类层次结构成为可能。

当然,对对象进行分类的想法远远早于任何编程语言。

于 2010-01-22T16:07:53.173 回答
5

事实上,我认为“类”这个词的起源早于计算机科学领域。分类学已经存在了很长时间,我敢说它的根源在哲学的某个地方,或者可能在生物学中不那么抽象。编程语言的人只是采用了另一个领域的类比:)。

于 2010-01-22T16:07:00.180 回答
1

类是定义,元数据;对象是实例。这是正常的 OOP 语言使用。

于 2010-01-22T16:01:32.083 回答
0

因为它们被用来“分类”相同性质的物体。

Employee 对象不同于 Account 对象。

所有这些概念都是面向对象技术的基础。Java恰好是一种面向对象的编程,这就是为什么他们首先使用所有这些术语。

于 2010-01-22T16:10:56.880 回答
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

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

于 2010-01-22T16:14:32.767 回答