Почему "класс" для класса в Java?
Почему создатели Java использовали имя "класс" для классов в Java? Откуда этот термин?
6 ответов
Ява не изобрела имя класса - он использовался в предыдущих языках, таких как C++.
Я думаю, что имя "класс" относится к классу объектов, как в классификации (или тип). И тогда объект является экземпляром этого типа.
Вот первое определение "класса" из dictionary.com:
- количество людей или вещей, рассматриваемых как формирующие группу по причине общих признаков, характеристик, качеств или черт характера; Добрый; Сортировать.
Так что это соответствует тому, что мы знаем как класс по информатике - "характеристики / качества / черты" - это поля и методы.
Виноваты Оле-Йохан Даль и Кристен Нюгаард, которые, очевидно, и создали концепцию Simula; а также Тони Хоар, который дал им вдохновение.
По истории Симулы:
Поскольку это преследование продолжалось в течение лета и осени 1966 года, они все больше и больше были озабочены возможностями, заложенными в конструкцию класса записи Тони Хоара, впервые представленную в бюллетене ALGOL №. 21, 1965. После тщательного изучения предложения Хоара о записи они в конечном итоге пришли к выводу, что, хотя он, очевидно, обладает рядом очень полезных свойств, он не в полной мере отвечает их требованиям. На самом деле они искали какую-то обобщенную концепцию процесса со свойствами класса записи.
Ответ на их проблему неожиданно появился в декабре 1966 года, когда была введена идея префикса. Процесс, позже названный объектом, теперь можно рассматривать как состоящий из двух уровней: префиксного уровня, содержащего ссылки на своего предшественника и преемника, наряду с рядом других свойств, и основного слоя, содержащего атрибуты рассматриваемого объекта. В дополнение к этой важной новой функции они также представили концепцию класса, которую можно грубо описать как усовершенствованную версию концепции деятельности SIMULA I. Эта мощная новая концепция позволила установить иерархии классов и подклассов объединенных объектов.
Конечно, идея классификации объектов далеко предшествует любому языку программирования.
Я думаю, что происхождение слова "класс" предшествует сфере компьютерных наук, на самом деле. Таксономия существует уже давно, и я бы сказал, что ее корни лежат где-то в философии или, возможно, менее абстрактно в биологии. Язык программирования люди просто переняли аналогию из другой области:).
Класс - это определение, метаданные; объект является экземпляром. Это нормальное использование языка ООП.
Потому что они используются для "классификации" объектов одинаковой природы.
Объекты Employee отличаются от объектов Account.
Все эти понятия являются основой объектно-ориентированной технологии. Java оказывается объектно-ориентированным программированием, поэтому они используют все эти термины в первую очередь.
Обратите внимание, что класс Class в Java вводится классами отражения, а не случайностью.
Здесь есть объекты 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
Другими словами, вызывать код, определенный во время компиляции. Очень удобно для вызова дополнительных функций.