• ベストアンサー

クラス?オブジェクト?インスタンス?何がなんだか・

一般的なオブジェクト指向の 定義として下記で合っているのでしょうか お願いします クラス:第2実体(人間) インスタンス:第1実体(例:山田) オブジェクト:色々なインスタンスをさして、抽象的に総称としてオブジェクト 例えば・・クラス:人間、インスタンス:山田 クラス:犬、インスタンス:ゴン 違うクラスのインスタンスをまとめて呼ぶ際にオブジェクト? よく分からなくなっています、よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

はい,その理解で正しいです。 オブジェクトは総称ですから,クラスもオブジェクトに含まれますよ。 http://okwave.jp/qa/q6879675.html の私の回答ANo.2 http://okwave.jp/qa/q7336441.html の私の回答ANo.3

meronmeronmeron
質問者

お礼

御礼が遅れました、 プログラムまではまだいたっていません 今のところ、資格、UMLの為だと思っています クラス、インスタンス、オブジェクトを理解することで 色々つながってくるんじゃないかと思っています ありがとうございました。

その他の回答 (1)

  • MetoroS
  • ベストアンサー率50% (1/2)
回答No.1

質問者の方の認識で合っていると思います。 ただ、「オブジェクト」という単語は意味が広くて コンピュータ言語によってはクラスオブジェクトもインスタンスオブジェクトもあります。 また、ソフトウェア開発の現場では人によってオブジェクト指向に対する理解度もバラバラで インスタンスとオブジェクトを明確に使い分けていない場合もあります。 私はオブジェクトという言い方は曖昧になるので、できるだけ使わないようにしています。 オブジェクト指向については本で読むよりも オブジェクト指向のコンピュータ言語でプログラムを書いてみると理解しやすいと思います。 ソフト開発を例に出させてもらいましたが、一度わかってしまえば 他の分野(データベース,仮想化etc)もとっつきやすくなると思います。

meronmeronmeron
質問者

お礼

考え方が理解できれば、E-R図も同じようなものじゃないかと 思っています 遅れましたがありがとうございました。

関連するQ&A

  • クラス、オブジェクト、インスタンスの理解で?

    お尋ねします。 既に、バリバリオブジェクト指向でプログラムを書いている方が多いので恐縮ですが、とあるサイトのオブジェクトのサンプルを使って、下記のようにサンプルソースを書いてみました。 --以下ソース--- <?php class Nerimono { private $name; public function __construct() { $this->name= 'ねりもの'; } public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } $objectNerimono = new Nerimono(); $objectKamaboko = new Nerimono(); $objectKamaboko->setName('かまぼこ'); $objectHanpen = new Nerimono(); $objectHanpen->setName('はんぺん'); echo 'Nerimono オブジェクトの $objectNerimono 実体(インスタンス)を生成した。'; echo "\n"; echo '$objectNerimono の private $name に「' . $objectNerimono->getName() . '」と、既に書いたあった'; echo "\n"; echo 'Nerimono オブジェクトの $objectKamaboko 実体(インスタンス)を生成した。'; echo "\n"; echo '$objectKamaboko の private $name に「' . $objectKamaboko->getName() . '」と書いた'; echo "\n"; echo 'Nerimono オブジェクトの $objectHanpen 実体(インスタンス)を生成した。'; echo "\n"; echo '$objectHanpen の private $name に「' . $objectHanpen->getName() . '」と書いた'; echo "\n"; --ここまで--- そして、これの実行結果が下記です。 C:\Temp>php Nerimono.php Nerimono オブジェクトの $objectNerimono 実体(インスタンス)を生成した。 $objectNerimono の private $name に「ねりもの」と、既に書いたあった Nerimono オブジェクトの $objectKamaboko 実体(インスタンス)を生成した。 $objectKamaboko の private $name に「かまぼこ」と書いた Nerimono オブジェクトの $objectHanpen 実体(インスタンス)を生成した。 $objectHanpen の private $name に「はんぺん」と書いた このコメントのような解釈で、合っておりますでしょうか? 今までオブジェクト指向のメリットが全然理解できず、関数の変わった呼び出し方法としか、理解できていませんでした。 PHPは、本来のオブジェクト指向とは違うようだとは、知っているつもりです。(Pブジェクト思考?w) 間違っているところあれば、ご指摘ください。m(_。_)m PHPは、Ver 5.3.5 です。

    • 締切済み
    • PHP
  • UMLでの「オブジェクト」と「インスタンス」の違い

    Java的な概念での説明や、単に「オブジェクト指向」と銘打つHPなどの説明では、「オブジェクト」と「インスタンス」は同じものとして扱われたり、「クラスオブジェクト」「インスタンスオブジェクト」等という言葉を持ち出し、単独の「オブジェクト」という言葉は存在しないなどと取れる説明をしていることが多いように感じます。 しかし、一般的にUMLを元にしたオブジェクト指向の考え方の下では「オブジェクト」と「インスタンス」という言葉は明確に使い分けられており、また「クラス」と「オブジェクト」は対極にあるものとして扱われるため、「クラスオブジェクト」等という言葉が使われることもありません。 下記URLと書籍では、「オブジェクト」と「インスタンス」を明確に使い分けています。 http://www.atmarkit.co.jp/fjava/devs/object04/object04.html テクノロジックアート UMLモデリングL1 P2,3 しかし、この使い分けのニュアンスの違いが理解できません。 オージス総研 初めて学ぶUML 21P では、「型/インスタンス」→「クラス/オブジェクト」という明確な解を提示していますが、微妙な感じだし、何より前出の2者とは明らかに異なる意味合いで使われています。 人によって異なる意味合いで使われているということは理解しています。また、その人による微妙な違いもおおむね理解しているつもりです。しかし、上記の2者のニュアンスだけは理解できない状態です。このニュアンスがわかる方、解説よろしくお願いします。

  • クラス、オブジェクト、インスタンス、メソッドについて。

    クラス、オブジェクト、インスタンス、メソッドに ついて教えていただけないでしょうか? 今現在の自分の認識では、乗り物を例にすると、 「乗り物」という大枠がクラス。それを、たとえば 飛行機なり電車なり船なり、より具体的にした ものがインスタンス=オブジェクト。 その具体化したものの挙動、動作(走るとか飛ぶとか) がメソッド、という理解です。 ただ、これだとオブジェクトとインスタンスを 同じものとして見てしまっているので、この2つの 違いを明確に説明しろと言われると困ってしまいます。 インスタンスとオブジェクトの違いを明確にした上で うまく伝えられる方法があれば、ご教授ください。

  • クラス、インスタンス、オブジェクトの区別

    クラスが人間という種類だとしたら インスタンスが例えばAさん、Bさんという具体的な人のことで、 オブジェクトが誰でもいいけどとりあえず具体的な誰か という認識でいいでしょうか? だとしたらなんとなくイメージはできたのですが、もっとわかりやすい言葉が欲しいです。 どなたから説明してもらえませんか?

    • ベストアンサー
    • Java
  • オブジェクト指向の特徴

    プログラミングにおいて Java言語などのオブジェクト指向とは 「クラス(設計図)からインスタンス(実体)を量産できる。」がオブジェクト指向ではないプログラミング言語との決定的な違いなのでしょうか? またオブジェクト指向とオブジェクト指向ではない言語の決定的な違いや 実際に実務において経験した感覚的な違いなどがあれば教えてください。 インターネットに乗っていない些細なことでも構いません。

    • ベストアンサー
    • Java
  • インスタンスとオブジェクト

    こんばんは。 変数について教えて下さい。 プログラム自体が初めてなので 「たのしい Ruby 第3版」を読んでいます。 ずっとインスタンスとオブジェクトの違いが曖昧なままです。 その本の「クラスとモジュール」という章にて クラスを定義する構文。 インスタンス変数とローカル変数の違いですが、 以下の説明で一部理解できずにつまずいています。 ―――――――――――― @ で始まる変数は インスタンス変数 といいます。 ローカル変数はメソッドごとに異なる変数として扱われますが、 インスタンス変数は同じインスタンス内であれば、 メソッド定義を超えてその値を参照したり、変更したりできます。 なお、初期化されていないインスタンス変数を参照すると nil が得られます。 インスタンス変数は、インスタンスごとに違う値を持つことができます。 またインスタンス変数は、 インスタンスがある間は値を保持しておいて 何度でも利用することができます。 一方、ローカル変数はメソッド呼び出しごとに新しく割り当てられるため、 メソッドから抜けると値を忘れてしまいます。 ―――――――――――― ここで分からないのは、 ・ローカル変数が "メソッドごと" に異なる変数として扱われる ・インスタンス変数は同じ "インスタンス内" であれば、 メソッド定義を超えてその値を参照したり、変更したりできます の部分です。 Webで検索してますが、 プログラミング経験ありを前提で書かれているような。 他の言語も知らないので分からない、そんなページが多いです。 人に聞くからには 自分でも頑張って理解できるように考えますので、 どうか回答よろしくお願いします。

    • ベストアンサー
    • Ruby
  • オブジェクト指向コンパイラのインスタンスの構造について

    インタプリタやコンパイラの中身について興味があり勉強しています。といってもまだ簡単な字句解析や構文解析のレベルです。 読んだ本にはオブジェクト指向言語については書かれていませんでした、そこで一つ疑問に思ったこと点について質問させてください。 簡単な言語の場合、使用する変数が宣言されると、その領域がスタックやヒープ空間に確保されるという風に理解しました。 一方オブジェクト指向言語にて、あるクラスのインスタンスを生成した場合を考えます。インスタンスには変数の他に関数やメソッドといった処理手続きが含まれていますよね。その手続きをコンパイルしたコードは何処に置かれているのでしょうか? 手続きのコードもヒープ空間に確保された各インスタンスの領域にコピー(?)されて実行されるのでしょうか。それとも処理手続きの実体は実行プログラムに含まれていて全インスタンスで共通で利用するようになっているのでしょうか。 初心者の素朴な疑問です、ご回答いただければ幸いです。

  • インスタンスオブジェクトとは何かについて教えて!!

    下記内容はあるサイトのインスタンスについての説明文です。 画像は、自分なりに理解したものです。 (1)メモリ上には記憶場所(=ポインタ)はない (2)var Aa = new Bb("13" , "smole");とscript内に追加されたことにより メモリ上に記憶場所(=ポインタ)が作成され、 BbオブジェクトつまりBb("13" , "smole");がその記憶場所(=ポインタ)に入る (3)そしてBb("13" , "smole");が入った 記憶場所(=ポインタ)にAaという名前を付ける。 考え方に間違いがあるでしょうか? ---------------------------------------------------- var Aa = new Bb("13" , "smole"); これは、BbクラスオブジェクトのBbコンストラクタをnew演算子を利用して起動しています。 new演算子は、メモリ上に記憶場所を確保して、Bbオブジェクトを作成した後、そのポインタを返す演算子です。 new演算子から返されたポインタは、Aaへ格納されます。この場合のAaをBbオブジェクトのインスタンスといいます。 また、new演算子でメモリ上に記憶場所を確保して作られたオブジェクトをインスタンスオブジェクトといいます。 つまり、 オブジェクト == インスタンスオブジェクト で、 インスタンス != インスタンスオブジェクト インスタンス != オブジェクト です。 ----------------------------------------------------

  • マルチプルインスタンスのメリット

    100%の自信をもって回答できる方のみ回答をお願いします。 Java等のオブジェクト指向プログラミング技術において、クラスからインスタンスを たくさん作れるというのが特徴の一つとなっていますが、クラスからインスタンスを たくさんつくれるメリットはなんでしょうか。 クラスからインスタンスをたくさん作れなくても、1つ作れば動くプログラムはたくさんありますし、 そういうプログラムであれば、staticなアクセスにすればよいですよね。 クラスからインスタンスがつくれることを説明した本やサイトは山ほどありますが、 インスタンスがたくさん作れることのメリットを説明した本をみたことがなく、 「なぜオブジェクト指向でつくるのか」という本を買って読みましたが、 納得がいくメリットを感じられませんでした。 また世の中のソースをみると、みんな、すぐにクラスを作ってオブジェクトを作っていますが、 みなさんがどうして、オブジェクトを作らなくてもコーディングできるケースのプログラムを オブジェクトを作るのか不思議でしかたありません。 どうしてオブジェクトを作らなくてもいいケースでもオブジェクトを作るのか、 またたくさんオブジェクトを作れるメリットはなんなのか、教えてください。

  • javaのオブジェクト指向やクラスについて

    javaのオブジェクト指向やクラスというのは学校や国に例えると「規則や法律」がクラスに当たり、「学校での生活や社会での生活(いわゆる人間生活)」がオブジェクトに当たるということですか? だとすると、オブジェクト指向の利点は学校や国に例えるとどんな風になるのですか?

    • ベストアンサー
    • Java

専門家に質問してみよう