• 締切済み

文系でも分かる「オブジェクト指向」とは?

デザイン系の仕事をしている者です。 先日Flash8からCS3にアップデートしたのですが、AS3になり記述方法も変わり、またクラスやらイベントリスナーやらの謎の呪文の様な用語が出てきて苦悩しております。 そもそも「オブジェクト指向」と言う概念が、文系頭ではさっぱりイメージ出来ません。 ネットで検索してもイメージが具現化出来ず良く分かりません。 どなたかプログラムの専門でない私にも分かりやすく解説をしていただけますでしょうか? ビジュアルとして捕らえやすいと有難いです。 ※今までJavaScriptなど他の言語は操作の経験はありません。 ※Flashはグラフィックデザインやアニメーションから入りました。 ※「使って覚えろ!」と言う短絡的な結論はやめて下さい。 どうぞよろしくお願いします。

  • Flash
  • 回答数2
  • ありがとう数0

みんなの回答

  • harepanda
  • ベストアンサー率30% (760/2474)
回答No.2

ANo1 harepandaです。 >> プログラムは作文ではなく、様々な関数の集合体によって作り出され、新しい関数を作ると、それを言語に元々存在するコマンドと同様に使えるという仕組みになっています。 >> ここが理解が難しいのですが、少し噛み砕いた説明を頂けますでしょうか? もともとコンピュータ言語のコマンドは、特定の数値や情報を入力すると、それに応じた結果を出すという挙動をします。これ自体が、広い意味での関数ですよね。それと同じように、特定の数値や情報を入力すると、それに応じた結果を出すという関数を作り、プログラム全体の一部ではなく、独立体として扱うことで、最初から存在するコマンドと同じように使えるのです。当然、一度作った関数を、他のプログラムに流用することも可能となります。 >> また、そもそもオブジェクト指向の「オブジェクト」とは何を指すのでしょうか? 超文系なので、分かりかねます :-)

  • harepanda
  • ベストアンサー率30% (760/2474)
回答No.1

超文系です。 古いプログラミング言語は、だらだらと作文のように上から下へと処理していく文書を書き、必要であれば、条件に応じて別の行に飛ばすという方式で出来ています。 昨今のプログラミング言語は、何かイベントが発生すると(つまり、特定のボタンがクリックされたとか)、該当する関数を呼び出すという作り方になっています。プログラムは作文ではなく、様々な関数の集合体によって作り出され、新しい関数を作ると、それを言語に元々存在するコマンドと同様に仕えるという仕組みになっています。これがオブジェクト型だと思えば良いかと思います。

yamaumisor
質問者

補足

ありがとうございます。 > 昨今のプログラミング言語は、何かイベントが発生すると(つまり、特定のボタンがクリックされたとか)、該当する関数を呼び出すという作り方になっています。 なるほど、おぼろげながら全体のイメージが分かりました。 > プログラムは作文ではなく、様々な関数の集合体によって作り出され、新しい関数を作ると、それを言語に元々存在するコマンドと同様に仕えるという仕組みになっています。 ここが理解が難しいのですが、少し噛み砕いた説明を頂けますでしょうか? また、そもそもオブジェクト指向の「オブジェクト」とは何を指すのでしょうか?

関連するQ&A

  • オブジェクト指向の勉強にちょうど良いソースコードはありませんか?

    オブジェクト指向の勉強にちょうど良いソースコードはありませんか? VB6からVB.NETへの移行中ですが、VB.NETは本格的にオブジェクト指向言語となったそうで、オブジェクト指向といえばデザインパターンらしいので勉強をしつつリファクタリングを行っています。 デザインパターンのサンプルコードはwebで散見されますが、どれも説明に必要な最小限のコードなので実際の開発にどのように適用したらよいかいまいちイメージできない部分があります。 また、具体的なところだと、オブジェクト指向ではオブジェクト間の結合度を弱くしてグローバル変数を極力使用しないとありますが、設定値を管理するオブジェクトのようにあちこちから参照されるものはやはりグローバルにするのが一般的なのでしょうか。 設計の参考になるソースコードとかサイトとか教えてください。 ちなみに、今作成しているのは測定器や電源装置などを制御してデータ収集したりする制御系のソフトです。

  • オブジェクト指向の間違いと改善案について

    オブジェクト指向というより オブジェクト指向プログラミングについての間違いと改善案をブログに書いてみました。 http://chaosblogchaos.blog.fc2.com/?no=2 この考え方に間違いがあるでしょうか? 説明不足の点はないでしょうか? よろしくお願いします。 以下ブログの内容 ---------- ■カオス指向(仮) カオス指向(仮)とは、オブジェクトに処理を追加・削除することでオブジェクトの振る舞いに無限性を持たせる試みです。 カオス指向(仮)ではデータが主体となり、木構造で保持します。 (ファイルフォルダで例えると、フォルダがオブジェクト、ファイルがプロパティに当たるイメージです) 処理を追加・削除が可能なことからプロトタイプベースがもっとも近いですが、 オブジェクトが親子関係を持つことと オブジェクトの親子関係から処理が影響を受ける事が異なります。 ●オブジェクトの内容  ・配列か連想配列で子オブジェクトを保持できます。    オブジェクトどうしの強い関係を意味し、親が削除される場合、子も削除される関係にあります。    オブジェクトはルートからの木構造の中に必ず存在する事になります。  ・別途、変数領域を確保する。    処理で使用する値を保持します。    オブジェクトどうしの弱い関係を保持できます。  ・処理を持つ。    オブジェクトに処理を持たせることができるます。    プロトタイプベースと異なる点は、    オブジェクトが処理を持っていても、オブジェクトがその処理をするわけでは無く、自身と子オブジェクトに対して適用され、”認識タイプ”を持つ場合に処理します。  ・”認識タイプ”を持つ。    処理の実行を制御します。認識タイプを含むかどうかで処理を行うかどうかを決定します。    オブジェクトのクラスは”認識タイプ”で実現可能と考えて問題ありません。 ●”認識タイプ” オブジェクト指向なら、 人は歩く、話す、・・・。Aさんは人。Aさんは話す。 カオス指向なら、 歩けるなら歩く、話せるなら話す、・・・。Aさんは歩ける、話せる、・・・。Aさんは話す。(歩ける・話せるを認識するようにした場合) 人は歩く、人は話す、・・・。Aさんは人。Aさんは話す。(人を認識するようにした場合) のどちらでも作成が可能で、 話せるなら話す、・・・。の場合、ウサギAの”認識タイプ”に話せるを追加することで、ウサギAは話せるようになります。 話せるウサギは実用的ではありませんが、 特定ユーザーのアクセスログだけ出力したい場合は、 処理を用意し、対象ユーザーに”認識タイプ”を追加することでログ出力処理を追加することが出来ます。 ●木構造と処理 ユーザー   日本     Aさん     Bさん   アメリカ     Cさん とある場合、 全ユーザーの処理をユーザーに保持 日本用の処理がある場合、日本に アメリカ用の処理がある場合、アメリカに処理を追加します。 そうすることでAさんは日本の処理、Cさんはアメリカの処理が行われます。 ●同一処理による関係 処理には優先順位が存在し、その順番で処理します。 処理A、処理Bとある場合、処理Aの中で元処理として実行します。 処理Aの中で元処理を行わない場合、処理Bは行われません。 ■カオス指向(仮)でどうなるか? ・幾つかのデザインパターンが不要になります。   デコレータ・コンポジット・ステートパターン等 ・多重継承らしきものが出来るようになります。   ※根本から違うので、多重継承らしきものとします。 ・循環問題が発生しませんない   ファイルフォルダのような木構造では循環は起こりえない。 ■オブジェクト指向プログラミングの問題点 オブジェクトにつき1クラスという決め付けが オブジェクト指向プログラミングにはあったのではないかと考えております。 オブジェクト指向では、 オブジェクト:クラス:継承クラスは1:1:1で、1:1:*は条件により可能ですが原則不可能。 カオス指向では、 オブジェクト:クラスは1:*と頭からクラスを複数持たせることで多重継承らしき形が実現可能ということです。 クラスの継承がなくなっていますが、クラスを複数持たせる事とクラスに順番を持たせることで継承が可能です。 オブジェクト指向プログラミングでは、オブジェクトにつき1クラスという決め付けが継承というシステムを作り 多重継承を難しくしたのではないかと考えております。

  • オブジェクト指向ではない指向は、何指向と言う?

    プログラミングでオブジェクト指向ではない指向は、何指向と言うのですか?

  • POA,DOA,OOA(開発アプローチ)

    情報の勉強超初心者です。 教科書に システム開発においてシステム化の対象となる業務を分析する 必要があり、代表的アプローチ方法が3つあり (プロセス指向アプローチ、データ思考アプローチ、オブジェクト指向アプローチ) 最後のオブジェクト指向の概念をあらわす代表的な用語が カプセル化、インヘリタンス、ポリモルフィズムとあります。 それぞれの説明を読むと書いてあることはわかるのですが システム開発に 携わったことがないので いまいち感覚がつかめません。 下記質問です。 1.カプセル化、インヘリタンス、ポリモルフィズムなどの用語は 開発者の間で日常的に使われることば、もしくは 日常的に 使っているのでしょうか。それぞれの定義が カプセル化(データと手続きをオブジェクトとして一体化) インヘリタンス(上位クラスで定義したデータや手続きを下位クラスでそのまま利用できること) ポロモルフィズム(同じメッセージを送っても受け取るオブジェクトによって振る舞いが異なることをいう)などなど 実体験もなく 理解力もないのでいろいろ ネットで調べても くつの上からかくような感じで頭にはいってきません。 2。もしできれば少しかみくだいてもしくはたとえなど使って どなたかわかりやすく もう少しイメージがわくように ご説明いただけますと幸いです。 よろしくお願いします。

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

    C#でプログラミングをしているのですが、オブジェクト指向を一切使わずに作っています。 作っていくにしたがってツールが重くなってきたのですが、オブジェクト指向を使ってい書いたほうがアプリケーションは軽くなりますか?

  • オブジェクト指向の教え方

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

    • ベストアンサー
    • Java
  • オブジェクト指向とは

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

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

    今オブジェクト指向について調べています. 「オブジェクト指向」ってどのようなものですか?(参考サイトなど) 具体的な例などを出して説明しなければなりません. どのようなものを題材にすればいいですか? よろしくお願いいたします.m(_ _)m

  • オブジェクト指向

    オブジェクト指向について調べています. もし,下のような例なら,「データ」は格担当(人物,街路樹etc)をどのように描くのか(色,形,種類)を定義していて,「プログラム」は人物,街路樹,建物,etcを描く行為でいいんですよね? ではこの中にある「監督的な立場の人」とはどういうことを表しているのでしょうか? よろしくお願いいたします. ーーーーーーーーーーーーーーーーーーーーーーーーー 例えばビルの屋上から見た風景画(全景)を描くとします。 ・昔は一人で全景を描いていました。 ・一人で描くのは大変なので複数人で手分けして共同作業します。 ・その場合、風景を、人物,街路樹,建物,自動車,道路,遠くの山並み,etc に分けて、描く担当者に分担させます。 ・それらを監督的な立場の人が遠近を考え纏め(張り合わせ)ます。 ・このようにして描くと、効率がよく良質な風景画が描けるという算段です。 ・オブジェクト指向の「オブジェクト」は、上記の「人物,街路樹,建物,自動車,道路,遠くの山並み,etc」が相当します。 ーーーーーーーーーーーーーーーーーーーーーーーーー 

  • 「オブジェクト指向とは」と聞かれたらどう答えますか

    「オブジェクト指向」というものがありますが、 仮にあなたが、これを一言で表すとしたら、どう答えますか? なるべくたくさんの人の考えを聞きたいので、 初心者の方も答えてください。 「なんとなくこう思っている」「こう習った」 というのでもOKです。

専門家に質問してみよう