La respuesta es complicada, por dos razones.
Diferentes personas en informática interpretan el término "objeto" de manera diferente. Una es que un objeto consta de algunos datos y operaciones agrupados. La otra es que un objeto es todo eso, pero también tiene "estado", es decir, es una forma de entidad cambiante .
Hay cuestiones filosóficas profundas que ver con lo que significa "cambio" (y qué significa "entidad", ya que está cambiando constantemente), y si las descripciones matemáticas en realidad capturan entidades cambiables.
Objeto en el sentido de datos + operaciones : eso es bastante estándar en matemáticas. Tome cualquier libro de texto de teoría de grupo. Tendrá en alguna parte una definición como . (Es un operador de conjugación). El es un "objeto" en esta terminología. Tiene algunos datos ( ) y una operación . O puede hacerlo más objeto-y tomando el par o el triplehsol( x ) = gx g- 1hsolsolx↦gxg−1⟨g,x↦gxg−1⟩⟨g,x↦gxg−1,x↦g−1xg⟩. Puede construir este tipo de "objetos" en cualquier lenguaje de programación funcional que tenga abstracción lambda y alguna forma de formar tuplas. La "Teoría de los objetos" de Abadi y Cardelli trata ampliamente con objetos de este tipo.
Objetos con estado (u objetos que cambian ): ¿Las matemáticas tienen tales cosas? No lo creo. No he visto a un matemático hablar sobre nada que cambie, no en su vida profesional. Newton solía escribir para la posición de una partícula, que supuestamente está cambiando, y para su velocidad de cambio. Los matemáticos finalmente descubrieron que lo que Newton estaba hablando era una función de números reales en un espacio vectorial, y era otra de esas funciones, que era la primera derivada de con respecto axx˙x(t)x˙x(t)t. A partir de esto, muchos matemáticos de pensamiento profundo han concluido que el cambio realmente no existe y que todo lo que tienes son funciones del tiempo. Pero lo que estaba cambiando en la mecánica newtoniana no era la posición, sino la partícula . La posición es su estado instantáneo. Ningún matemático o físico pretendería que una partícula es una idea matemática. Es una cosa física.
Así es con los objetos. Son cosas "físicas", y los estados son sus atributos matemáticos. Para una buena discusión de este aspecto, vea el Capítulo 3 de la Estructura e interpretación de programas de computadora de Abelson y Sussman . Este es un libro de texto en el MIT y lo enseñan a todos los científicos e ingenieros, quienes creo que entienden perfectamente las cosas "físicas".
El hecho de que las partículas no sean matemáticas no significa que no podamos tratarlas matemáticamente. Si le pide a un matemático que modele un sistema de dos partículas, él inmediatamente inventará dos funciones y las llamará y . Entonces, las dos partículas se reducen a dos índices sin sentido (1 y 2). Esta es la forma en que el matemático dice que no sabemos cuáles son esas partículas y que no nos importa. Todo lo que necesitamos saber es que sus posiciones evolucionan independientemente (o por separado). Entonces, los modelaremos por dos funciones separadas.x 2 ( t )x1(t)x2(t)
Del mismo modo, la forma matemática estándar para modelar programas orientados a objetos es tratar cada objeto como un índice en el espacio de estado. La única diferencia es que dado que los objetos van y vienen, y la estructura del sistema es dinámica, necesitamos extenderlo a un modelo de "mundo posible" donde cada mundo es básicamente una colección de índices. La asignación y desasignación de objetos implicaría moverse de un mundo a otro.
Sin embargo hay un problema. A diferencia de la mecánica, queremos que el estado de nuestros objetos se encapsule . Pero las descripciones matemáticas de los objetos ponen estados por todo el lugar, destruyendo completamente la encapsulación. Hay un truco matemático llamado "parametricidad relacional" que se puede utilizar para recortar las cosas a su tamaño. No lo abordaré ahora, excepto para enfatizar que es un truco matemático, no una explicación muy conceptual de la encapsulación. Una segunda forma de modelar objetos matemáticamente, con encapsulación, es refinar los estados y describir el comportamiento del objeto en términos de eventos observables. Para una buena discusión de ambos modelos, puedo referirme a mi artículo titulado Objetos y clases en lenguajes similares a Algol .
[Nota agregada:]
Un buen análisis de los fundamentos matemáticos de los objetos se puede encontrar en el artículo de William Cook " Sobre la comprensión de la abstracción de datos, revisitado ".