- ベストアンサー
インスタンスの定義について。
今プログラミングについて勉強しています。そこでよく耳にするのがインスタンスという言葉なんですが、本やネットで調べてもなんとなくわかったような、わからなかったような…。よく「実体」という例えは聞くんですが、実体というのはオブジェクトのことになるんじゃないんですか?ご指導お願いします。 あっ!!ちなみにインスタンスという言葉は、使い方によって意味が違ってくるなんてことはないですよね?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1のお答えは非常に的を射ていると思います。 蛇足ですが、例えで補足します。(多少厳密性は犠牲にしますが) オブジェクト、クラス、インスタンスといった時にオブジェクトはクラスと インスタンスの両方を意味する事が多いです。 例えば、ある車種を考えた時に、設計図がクラスです。クラスは車そのものではありません。 お客さんの注文内容と設計図から車が生産されます。出来た車の1台、1台が インスタンス(実体)です。 クラスとインスタンスは設計図と車と考えると理解しやすいです。 話は飛びますが、オブジェクトと言うのは「ある性質を持ち、周囲から刺激を受けると、ある振る舞いをするもの」と表現する事が出来ます。 人間も、動物も植物も、自動車もパソコンも全てオブジェクトです。 インスタンス(実体)がオブジェクトであることは明白です。 そこで、自動車の設計図を考えて見ます。 設計図は、それ自身は実体としての振る舞いはしないけれど、ちょうど、 遺伝子のように、実体を作り出すための情報を全て持っています。 つまり、実体ではないが、実体そのもの(というよりはオブジェクト)と いってもいい。 そこで、設計図(クラス)は、オブジェクトと言う事があるわけです。
その他の回答 (1)
- VanillaTea
- ベストアンサー率52% (13/25)
「実体」は「例え」ではなくて、まさにインスタンスの「意味」です。 実体というのはオブジェクトのことです。 objectという用語は広範囲、多様であるのに対し、instanceといえば実体だと すぐ分かる。 class,型に対しinstance、実体があります。 objectはinstanceを指す場合もあるし、classとinstanceを指す場合、 classを指す場合(あまりないか)もあるし。なので、instanceと言う用語の 方が、何を意味するか分かりやすい。objectというと何を指すのか前後の文脈 から判断しなければなりません。 instance objectなんて好んで使い出したら、「煙にまこうとしてるな」と 予感してください。