«Метод» - это специальный термин в объектно-ориентированном программировании. Кто-нибудь знает, когда слово стало использоваться в этом конкретном смысле, и в связи с каким языком программирования или другой отраслью количественного обучения?
«Метод» - это специальный термин в объектно-ориентированном программировании. Кто-нибудь знает, когда слово стало использоваться в этом конкретном смысле, и в связи с каким языком программирования или другой отраслью количественного обучения?
Ответы:
Java и C # получили метод от C ++, который получил его от Simula .
И Алгол, вероятно, оказал влияние на Симулу:
Кроме того, версия MIT ALGOL, AED-0, связывала структуры данных («сплетения» на этом диалекте) напрямую с процедурами, предварительно настроив то, что позже было названо «сообщениями», «методами» и «функциями-членами».
Трудно найти определенный ответ там, но первым языком, который ссылается на вещи как методы, кажется, был Simula, хотя это вполне может быть ложным или задним числом. Учитывая, что функции (из математики) и процедуры (также из математики) отображаются в языках программирования, лучшее, что я могу понять, это то, что «Метод» - это краткая форма для «Методологии».
Все это подпрограммы, фрагменты кода, составляющие компьютерную программу. Я полагаю, «Метод» был выбран, потому что идея программирования в стиле ООП состоит в том, чтобы максимально использовать код. Таким образом, вы можете иметь процедуру, но метод проясняет, что это новый стиль в работе. Честно говоря, я знаю, что вызывает методы методов, и я слышал, что функции называются методами.
void
. Функции-члены C ++ очень тесно связаны с обычными функциями (в отличие от Simula) - наличие неявного this
параметра и (возможно) механизма диспетчеризации во время выполнения не меняет того, с чем вы имеете дело. Я не знаю , если C был первым , чтобы рассматривать функции и процедуры , как то же самое, но Паскаль (новее язык) есть function
и procedure
ключевые слова - хотя IIRC, Pascal функция может иметь побочные эффекты.
Я искал информацию об этом на протяжении десятилетий. До сих пор я предполагаю, что термин пришел в Simula из специального подполя числовых вычислений, где конкретный алгоритм для реализации функции (например, собственное значение или что-то еще) часто называют методом . Это потому, что у вас могут быть различные численные методы для вычисления одной и той же математической функции с различными компромиссами. В ООП из-за переопределения метода у вас может быть «одна и та же» функция, реализованная по-разному в зависимости от класса - например, область будет реализована по-разному для Circle и Rectangle , которые являются Shapes , которые имеют площадь, Это кажется разумным продолжением традиционной концепции численного метода.
Я ничего не знаю об этимологии этого слова в истории ООП. Но я знаю , что это не deductional (deducable). Лучшим термином (более дедукционным термином или MDT) для него может быть реакция или действие
Программисты с фоном REAL BASIC, VBx и VB.net знают о двух типах объявлений методов: «FUNCTION» и «SUB». Семейство языков BASIC позволяет объявлять функцию как с ключевым словом «FUNCTION», так и с ключевым словом «SUB». Разница между этими двумя заключается в том, что «FUNCTION» может или не будет возвращать значение, тогда как «SUB» просто выполняет код, но не возвращает никакого значения. Но с появлением концепций ОО термины «суб» и «функция» стали взаимозаменяемыми в качестве методов.