• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBがオブジェクト指向言語でない理由)

VBがオブジェクト指向言語でない理由

leelの回答

  • leel
  • ベストアンサー率0% (0/6)
回答No.3

よく見るオブジェクト指向プログラミングの場合、継承と委譲は概念として区別して扱うと思います。これらは is と has として示されることがあります。 ex) A bus is a car / A car has an engine で、前述のとおり多態性と委譲があれば擬似的に継承を表せるのですが、それを言い出すと手続き型言語でも擬似的に表すのならできるので、どこかに境界を置いているのでしょう。 ですから、人によってはC++もオブジェクト指向言語としては不十分だとか言うのではないでしょうか。

k_o_j_i
質問者

お礼

>ex) A bus is a car / A car has an engine 前者はcarが親でbusが子クラス(継承を示す)のは判るんですが、 "A car has an engine"が委譲を示すというのが良く判りません。 そして「委譲」は多態性とどう違うのでしょうか?

関連するQ&A

  • オブジェクト指向に関して。

    Javaの解説本を読んでオブジェクト指向プログラミングという物があることをしりました。その本には「オブジェクトはデータとそのデータを扱うための機能を持っている。この機能はメソッドと呼ぶ。クラスは設計図のような物で変数とメソッドから構成されている。設計図を実際に形にした物がインスタンスである。」と書いてありました。私はオブジェクト=クラスのような感じがしたのですが、実際のところオブジェクト=クラスでいいのでしょうか?  また、友人に話したところ、オブジェクト指向はサブルーチンに似ているといっていました。私はプログラミングの知識が全くないのでサブルーチンという物が何なのかわからないのですが、サブルーチンとオブジェクト指向の考え方は違うような気がするのです。友人に説明して納得させるにはどうしたら良いのでしょうか? ぜひ、力を課してください。

  • オブジェクト指向言語について

    オブジェクト指向言語における、クラス継承の動作について ご教授ください。 クラスを継承する場合、extendsなどといったキーワードで継承の動きを 実現させるとおもいますが、継承とは、Aというクラスを丸々包含したBというクラスを作成することをいうのでしょうか? それとも、Aというクラス内にあるpublicやprotectedメンバのみをBというクラスに引き継ぐことをいうのでしょうか? 書籍にやサイトによっては【継承とは継承もとのprivateおよびprotecetd(に準じた)メンバを派生クラスに引き継がせる】という風に解釈できる文面で記述されているものがあります。 継承とは親クラスを拡張した子クラスを作成する と解釈できるような文面で記述された文献もあります。 伺いたいのは、クラス丸ごとを継承するのかそれともpublicおよびprotectedに準じたメンバのみを 継承するのかです。 OOPの思想や、ちょっと詳しいからといってこまごましたことを こたえてくるような方はご遠慮ください。

  • オブジェクト指向とは

    オブジェクト指向の本をたくさん読んでみましたが 全部書いてあることが難しくていまいちピンときません。 要は簡単にいうと、クラスを作ってその中にメソッドを 作ってロジックの中でその中のクラスを使い分けていく という考え方がオブジェクト指向というのでしょうか? 簡単でいいのでわかりやすくオブジェクト指向というのを教えていただけないでしょうか?友人に聞くとオブジェクト指向を説明すると2時間はかかると言われてしまいました。

    • ベストアンサー
    • Java
  • オブジェクト指向について

    趣味でプログラミングをしているのですが オブジェクト指向の概念がうまく理解できていないので 教えていただけませんでしょうか? 解説本などを読むと、オブジェクト指向のクラスを動物クラスを継承して犬クラスや猫クラスなどと解説してあるのですが。 どうも、僕がプログラム設計するとしっぽクラスや泣き声クラスなどといった違った動物の類似機能をまとめてのクラスをつくり各メソッドとしてしまいまっています。 動物クラスや乗り物クラスを組み合わせてプログラムを設計する事ができません。 本格的なプログラムを組む用途では無いので気にしなくても目的の機能が実装できれば問題無いと知人からは言われ(面倒なので教えたくないのかもしれませんが)そのまま来てしまいました。 最近、気になって来たので。 正しい使い方を身に着けたいと思いチャレンジしていますが、変な癖がついていて犬や猫クラスなどと思いながら設計していると思考が止まってしまいます。 そこで、下記のことを教えていただけませんでしょうか? (1)泣き声クラスなどの同機能を1つのクラスにしてしまう設計しか出来ない(発想できない)のは考え方のどこがわるいのでしょうか? (追記:一部分だけならペンギンクラス猫クラスなどと言う動物クラスの継承的な発想はできるのですが実際のプログラミングの際は動物のようなわかり易い物オブジェクトとして目に見える物体ではない事柄をオブジェクト化にする事が難しく感じるのではないかと思います。) (2)今までの小さい規模での開発なら、クラスのつくり方がおかしくても不具合は無かったのですが、どのような時に困る事があるのでしょうか?(解説などでも再利用性などと、さらっと解説されていますがイマイチぴんときません) (3)正しくオブジェクト指向がマスター出来ている方にとって、どのクラスにどのメソッド実装するか悩む事などはあるのでしょうか? また、設計で一番悩むのはどのあたりですか? (4)UMLのマスターは必須でしょうか?(現在は、なんとなくUMLぽい感じでメモ書きをつくり、えせオブジェクト指向でプログラムを組んでいます。) (5)その他アドバイスがあればお願いします。 ※乱文で問題もハッキリせず質問の整理等がうまくいっていないと思いますが1つの項目だけでも構いませんので、ご教授お願いします。

    • ベストアンサー
    • Java
  • オブジェクト指向の教え方

    新入社員にJavaを教えているところなのですが、オブジェクト指向プログラミングをどのように教えていいか困っています。 全員がC言語研修を受講済みで、さらにJava言語も、継承やオーバーロード、例外まで一通り教えて、一応理解しています。 そこで、次のレベルとして、C言語風のプログラミング(「プログラム=関数の集まり」の考え方)から、オブジェクト指向(「プログラム=オブジェクトの集まり」の考え方)に意識改革させたいところです。 問題領域をオブジェクトの集まりとしてとらえ、そこからクラスを抽出していく、という説明がよくありますが、 「何をオブジェクトにするのか」「どのようにクラスを抽出したらいいのか」の部分を詳しく教えたいのですが、どのように説明したらいいでしょうか。また、参考になるWebサイトなどありませんでしょうか? 自分が普段作るときは、ほぼ「勘」でクラス設計していますので、それでは教えられなくて困っています。よろしくお願いします。

    • ベストアンサー
    • Java
  • 【オブジェクト指向について】

    【オブジェクト指向について】 こんにちは。初めて質問をさせていただきます。 さて、ただいまVBを勉強中なのですが、オブジェクト指向のところで躓いてしまいました。 質問したい事は以下の点です。 (1) オブジェクト指向の理解について   オブジェクト指向とは、プログラミングをするときに変数や機能などをクラスというものに格納しておくことで、プログラミングを円滑にすすめるための概念であると理解していますが、この理解は正しいのでしょうか? ご回答お待ちしております。よろしくお願いいたします。

  • オブジェクト指向とUMLについて

    「オブジェクト指向」と「UML」の勉強をしようと思っているのですが、お勧めの参考書またはWebサイトをお教えていただきたいです。 ※オブジェクト指向については、JavaやC++のような言語についてではなく、オブジェクト指向についてです。 ちなみに私はJavaは経験したことがありますが、正直"オブジェクト指向がなんたるか"はわかっていないです… 現在業務でJavaに携わっていてるので、オブジェクト指向という考え方をこの機にしっかりと学べればと思っています。 UMLはまったく無知です; クラス図やシーケンス図など中身にナニがあるか微妙に知っているだけです…; どちらか片方でも良いので何かございましたら、お教え願います。 …参考書だと電車で読めるので、ちょっとだけ喜びます(笑

  • オブジェクト指向

    Javaプログラミングを少し勉強し始めました。 そこで、オブジェクト指向という言葉が出てきました。 オブジェクトを作る利点というか意味はどのようなところにあるのでしょうか? 比較的簡単なプログラムなら、変数とメソッドで表示できると思うのですが・・。 ・コードが読みやすくなる ・実行速度が速くなる などの利点があるのでしょうか? なるべく分かりやすく解説してもらえればと思います。

    • ベストアンサー
    • Java
  • オブジェクト指向で分からないことが。

    オブジェクト指向で分からないことが。 1.クラスAから、文字列引数を指定して、クラスBがインスタンス化されたオブジェクトを取得する。 (getInstance的メソッド)引数の文字列にマッピングされたオブジェクトを取得する感じ。 2.1.で取得したオブジェクトから、各オブジェクトを取得するメソッドを呼び出し、オブジェクトを取得する。(仮にクラスC) 3.2.で取得したクラスCのメソッドを呼び出す。 このとき、クラスCのメソッド内で、1.で利用された引数を利用したいです。 そもそもクラスCは、1.を経てしか取得されないものの為、再度1.の引数を渡したくありません。 内部的な値なので、スコープpublicのセッターを用意して、クラスA内からの書き換えが出来ては困ります。 こういう場合、どういうクラス設計を行えば良いのでしょうか?

    • ベストアンサー
    • Java
  • VB.NET,2005でのオブジェクト指向、クラス設計のポイント。

    VB6ユーザでした。 これから、VisualStudio2005で、VisualBasiの開発を 新規に行う所です。 VB6ユーザの悩み所として、クラス設計があるかと思います。 オブジェクト指向の概念は理解しているのですが、 クラス設計のポイントをアドバイス頂けないでしょうか。 みなさんの、VB.NET、VisualStudio2005等での オブジェクト指向プログラミングの勘所を教えて頂けると 助かります。 思いつく事では・・・ 例1) 顧客DBがあり、いろんな画面から操作する場合、 顧客クラスを用意し、DB操作は、顧客クラスを経由して 行うとか。 例2) 出来るかどうか分かりませんが、 画面で共通部品となる部分を、クラス化し、継承して いくとか。 参考になるHPでも良いので、アドバイスをお願い致します。