答えは2つの理由で複雑です。
コンピュータサイエンスでは、「オブジェクト」という用語の解釈が人によって異なります。1つは、オブジェクトが一緒にパッケージ化されたいくつかのデータと操作で構成されることです。もう1つは、オブジェクトが「状態」を持つだけでなく、オブジェクトが何らかの形の変更可能なエンティティであることです。
「変化」の意味(および常に変化する「エンティティ」の意味)と、数学的記述が実際に変更可能なエンティティをキャプチャするかどうかには、深い哲学的問題があります。
データ+操作という意味でのオブジェクト:数学ではこれはかなり標準的です。どんなグループ理論の教科書も持ってください。どこかにような定義があります。(これは共役演算子です。)は、この用語では「オブジェクト」です。いくつかのデータ()と操作ます。または、ペアまたはトリプルを使用して、よりオブジェクト-yにすることができますhg(x)=gxg−1hggx↦gxg−1⟨g,x↦gxg−1⟩⟨g,x↦gxg−1,x↦g−1xg⟩。これらの種類の「オブジェクト」は、ラムダ抽象化とタプルを形成する何らかの方法を備えた関数型プログラミング言語で構築できます。AbadiとCardelliの「オブジェクト理論」では、この種のオブジェクトを幅広く扱っています。
状態を持つオブジェクト(または変化するオブジェクト):数学にはそのようなものがありますか?私はそうは思いません。私は数学者が彼/彼女の職業生活ではなく、変化することについて話すのを見たことがありません。ニュートンは、おそらく変化していると思われる粒子の位置を表すと、その変化率をを使用していました。数学者は、最終的にニュートンが話していたかについての関数であったことを考え出したベクトル空間に実数から、およびの一次導関数であった別のそのような機能であったに対してxx˙x(t)x˙x(t)t。このことから、多くの深く考えている数学者は、変化は実際には存在せず、すべてが時間の関数であると結論付けています。しかし、ニュートン力学で変化していたのは位置ではなく、粒子でした。位置はその瞬間の状態です。数学者や物理学者は、粒子が数学的アイデアであると偽ることはありません。物理的なものです。
ですから、オブジェクトについてです。それらは「物理的な」ものであり、状態はそれらの数学的属性です。この側面の良い議論については、Abelson and Sussman's Structure and Interpretation of Computer Programの第3章を参照してください。これはMITの教科書であり、彼らはすべての科学者やエンジニアに教えています。
粒子が数学的ではないという事実は、それらを数学的に扱うことができないことを意味しません。数学者に2粒子系のモデル化を依頼すると、彼はすぐに2つの関数を構成し、それらをおよびと呼びます。したがって、2つのパーティクルは2つの無意味なインデックス(1と2)に減少します。これは、これらの粒子が何であるかを知らず、気にしないという数学者の言い方です。私たちが知る必要があるのは、彼らの立場が独立して(または別々に)進化することです。したがって、2つの別々の関数でモデル化します。x1(t)x2(t)
同様に、オブジェクト指向プログラムをモデル化する標準的な数学的方法は、各オブジェクトを状態空間へのインデックスとして扱うことです。唯一の違いは、オブジェクトが行き来し、システムの構造が動的であるため、各世界が基本的にインデックスのコレクションである「可能な世界」モデルにそれを拡張する必要があることです。オブジェクトの割り当てと割り当て解除には、ある世界から別の世界への移動が含まれます。
しかし問題があります。力学とは異なり、オブジェクトの状態をカプセル化する必要があります。しかし、オブジェクトの数学的記述は、あらゆる場所に状態を配置し、カプセル化を完全に破壊します。「関係パラメトリック性」と呼ばれる数学的トリックがあり、これを使用してサイズを元に戻すことができます。数学的トリックであり、カプセル化の概念的な説明ではないことを強調する以外は、ここでは説明しません。、数学的にオブジェクトをモデル化する第二の方法でカプセル化は、状態をフィネスし、観察可能な事象に関して、オブジェクトの振る舞いを記述することです。これらのモデルの両方の良い議論については、私がAlgolのような言語でオブジェクトとクラスというタイトルの私の論文を参照することができます。
[追加されたメモ:]
オブジェクトの数学的基盤の優れた分析は、William Cookの記事「On On Data Abstraction、Revisited」にあります。