Ответ сложен по двум причинам.
Разные люди в области компьютерных наук по-разному интерпретируют термин «объект». Во-первых, объект состоит из данных и операций, упакованных вместе. Другое состоит в том, что объект - это все, но также имеет «состояние», т. Е. Это некоторая форма изменяемой сущности.
Существуют глубокие философские проблемы, связанные с тем, что означает «изменение» (и что означает «сущность», поскольку оно постоянно меняется), и действительно ли математические описания действительно отражают изменяемые сущности.
Объект в смысле данных + операций : это довольно стандартно в математике. Возьмите любой учебник по теории групп. Это будет где-то такое определение, какчасг( х ) = гИксг- 1, (Это оператор сопряжения.)часгявляется «объектом» в этой терминологии. Есть некоторые данные (г) и операция х ↦ гИксг- 1, Или вы можете сделать его более объектным, взяв пару⟨ г, х ↦ гИксг- 1⟩ или тройной ⟨ г, х ↦ гИксг- 1, х ↦г- 1х г⟩, Вы можете создавать такие «объекты» на любом функциональном языке программирования, который имеет лямбда-абстракцию и может образовывать кортежи. «Теория объектов» Абади и Карделли имеет дело с объектами такого рода.
Объекты с состоянием (или объекты, которые меняются ): есть ли у математики такие вещи? Я так не думаю. Я не видел, чтобы математик говорил о чем-либо, что меняется, не в его / ее профессиональной жизни. Ньютон раньше писалИкс для положения частицы, которая предположительно изменяется, и Икс˙для его скорости изменения. В конце концов математики выяснили, что то, о чем говорил Ньютон, было функциейх ( т ) из действительных чисел в векторное пространство, и Икс˙ была еще одна такая функция, которая была первой производной от х ( т ) в отношении T, Исходя из этого, многие глубокомысленные математики пришли к выводу, что изменений на самом деле не существует, и все, что у вас есть, это функции времени. Но в ньютоновской механике менялось не положение, а частица . Позиция - это мгновенное состояние. Ни один математик или физик не сделал бы вид, что частица является математической идеей. Это физическая вещь.
Так же и с объектами. Это «физические» вещи, а состояния - их математические атрибуты. Хорошее обсуждение этого аспекта см. В главе 3 « Структура и интерпретация компьютерных программ» Абельсона и Суссмана . Это учебник в Массачусетском технологическом институте, и они преподают его всем ученым и инженерам, которые, я думаю, прекрасно понимают «физические» вещи.
Тот факт, что частицы не являются математическими, не означает, что мы не можем иметь дело с ними математически. Если вы попросите математика смоделировать двухчастичную систему, он немедленно создаст две функции и вызовет ихИкс1( т ) а также Икс2( т ), Итак, две частицы сводятся к двум бессмысленным показателям (1 и 2). Это способ математика сказать, что мы не знаем, что это за частицы, и нам все равно. Все, что нам нужно знать, это то, что их позиции развиваются независимо (или по отдельности). Итак, мы будем моделировать их двумя отдельными функциями.
Точно так же стандартный математический способ моделирования объектно-ориентированных программ состоит в том, чтобы рассматривать каждый объект как индекс в пространстве состояний. Единственное отличие состоит в том, что, поскольку объекты приходят и уходят, а структура системы является динамической, нам необходимо расширить ее до модели «возможного мира», где каждый мир представляет собой набор показателей. Распределение и освобождение объектов предполагает перемещение из одного мира в другой.
Хотя есть проблема. В отличие от механики, мы хотим, чтобы состояние наших объектов было инкапсулировано . Но математические описания объектов помещают состояния повсюду, полностью разрушая инкапсуляцию. Существует математический трюк, называемый «реляционная параметричность», который может быть использован для сокращения размеров. Сейчас я не буду вдаваться в подробности, за исключением того, что подчеркну, что это математический прием, а не очень концептуальное объяснение инкапсуляции. Второй способ математического моделирования объектов с инкапсуляцией заключается в уточнении состояний и описании поведения объекта в терминах наблюдаемых событий. Для хорошего обсуждения обеих этих моделей я могу отослать вас к моей статье под названием Объекты и классы на Алголоподобных Языках .
[Примечание добавлено:]
Хороший анализ математических основ объектов можно найти в статье Уильяма Кука « О понимании абстракции данных, снова в обзоре ».