Відповідь складна з двох причин.
Різні люди з інформатики трактують термін «об’єкт» по-різному. Одне полягає в тому, що об’єкт складається з деяких даних і операцій, упакованих разом. Інша полягає в тому, що об’єкт - це все, але також має "стан", тобто це певна форма змінної сутності.
Існують глибокі філософські питання, що стосуються того, що означає "зміна" (і що означає "сутність", як вона постійно змінюється), і чи фактично математичні описи фіксують змінні сутності.
Об'єкт у сенсі даних + операції : Це досить стандартно в математиці. Візьміть будь-яку підручник з теорії груп. Десь буде таке визначення, як . (Це оператор кон'югації.) - "об'єкт" у цій термінології. Він має деякі дані ( ) та операцію . Або ви можете зробити його більш об'єктним-y, взявши пару або потрійнийгодг( x ) = gхг- 1годггx ↦ gхг- 1⟨ г, x ↦ gхг- 1⟩⟨ г, x ↦ gхг- 1, x ↦г- 1х g⟩. Ви можете сконструювати подібні "об'єкти" на будь-якій мові програмування, яка має лямбда-абстракцію та певний спосіб формування кортежів. "Теорія об'єктів" Абаді та Карделлі широко займається подібними предметами.
Об'єкти зі станом (або об'єкти, що змінюються ): Чи є в математиці такі речі? Я не думаю, що так. Я не бачив, щоб математик говорив про щось, що змінюється, не в його професійному житті. Ньютон використовував для написання позицію частинки, яка нібито змінюється, і для її швидкості зміни. Зрештою, математики з'ясували, що те, про що говорить Ньютон, - це функція від реальних чисел у векторному просторі, а - ще одна така функція, яка була першою похідноюхх˙x ( t )х˙x ( t ) з повагою до т. Звідси багато математиків глибокого мислення дійшли висновку, що змін насправді не існує, і все, що у вас є, є функціями часу. Але те, що змінювалося в ньютонівській механіці, було не позиція, а частинка . Позиція - це миттєвий стан. Жоден математик чи фізик не претендує на те, що частинка є математичною ідеєю. Це фізична річ.
Так і з предметами. Вони - "фізичні" речі, а держави - їх математичні ознаки. Для приємного обговорення цього аспекту див. Розділ 3 Структура Абельсона та Суссмана та інтерпретація комп'ютерних програм . Це підручник у MIT, і вони навчають його всім вченим та інженерам, які, я думаю, розуміють "фізичні" речі ідеально.
Те, що частинки не є математичними, не означає, що ми не можемо мати справу з ними математично. Якщо ви попросите математика змоделювати систему з двома частинками, він одразу складе дві функції та зателефонує їмх1( t ) і х2( t ). Отже, дві частинки зводяться до двох безглуздих показників (1 і 2). Це математичний спосіб сказати, що ми не знаємо, що це за частинки, і нам все одно. Все, що нам потрібно знати, - це те, що їхні позиції розвиваються незалежно (або окремо). Отже, ми будемо моделювати їх за двома окремими функціями.
Аналогічно стандартним математичним способом моделювання об'єктно-орієнтованих програм є трактування кожного об'єкта як індексу в просторі стану. Єдина відмінність полягає в тому, що оскільки об’єкти приходять і йдуть, а структура системи є динамічною, нам потрібно поширити її на модель "можливого світу", де кожен світ - це сукупність індексів. Виділення та розміщення предметів передбачало б перехід від одного світу до іншого.
Однак є проблема. На відміну від механіки, ми хочемо, щоб стан наших об’єктів був інкапсульований . Але математичні описи об'єктів ставлять стани всюди, повністю руйнуючи інкапсуляцію. Існує математичний трюк під назвою "реляційна параметричність", який можна використовувати для скорочення речей. Я зараз не буду займатися цим, окрім наголосу, що це математичний трюк, а не дуже концептуальне пояснення інкапсуляції. Другий спосіб моделювання об'єктів математично, за допомогою інкапсуляції, полягає в тонкому стані та описі поведінки об'єкта з погляду спостережуваних подій. Для гарного обговорення обох цих моделей я можу віднести вас до моєї статті під назвою « Об’єкти» та класів на мовах, схожих на алголь .
[Примітка додано:]
Приємний аналіз математичної основи об'єктів можна знайти у статті Вільяма Кука " Про розуміння абстракції даних, переглянута ".