
現役S.E.です。イベントドリブンとオブジェクト指向のことを説明する必要に迫られています。しかし、私自身知識が混乱してしまい、説明に自信がないので教えてください。
オブジェクト指向は、構造化プログラミングに変わって登場してきた考え方ですよね。クラスを設計してイベントやプロパティ、メソッドを実装してインスタンスを派生していくプログラミング方法であると認識しています。
それから、イベントドリブンはマウスでのクリックとかキーの押下などのイベントに応じて、様々なアクションを起こすという考え方だと認識しています。
それで、ちょっと考えるとイベントドリブンを実現するためには、アクションやメソッドがないと動かせないと思うので、オブジェクト指向でないと実現できないと思うのですが、構造化プログラミングなのにイベントドリブンで動かすみたいなケースってあるのでしょうか?
イベントドリブンという考え方を、オブジェクト指向と組み合わせて開設してしまっていいのかどうかがよく分からなくなってしまいました。
どんな風に解説したらいいか、アドバイス頂ければ幸いです。
No.3ベストアンサー
- 回答日時:
自分の回答を見直してみると分かりにくかったので補足します。
オブジェクト...
発想の出発点はデータと操作を一まとめにすることですが、さらに抽象化を進めて、とにかく何らかの機能を持ち、外部との交流手法(インターフェース)を備えたものですね。
つまり、自動車もオブジェクトです。また自動車のエンジンもオブジェクトです。
イベントドブリンは、もともとあった割り込みという概念をさらに進めて、イベントをいちいち調べて、処理の実行を行うのではなく、イベントに対する処理をあらかじめ用意しておく。
つまりイベント→処理という流れを基本とする考え方ですよね。
もちろんこの処理に対してオブジェクトを使うことはかまいませんけど、普通の関数でもいいわけですね。
私の言いたかったことはそういうことです。
ありがとうございます! 現役S.E. とは言っても、Windowsから入った者なので、過去の経緯などはまだまだ勉強中の身です。
ご丁寧な解説ありがとうございました。全く別物だったのですね。
では、Windows言語である C# などは、「イベントドリブン」を採用した「オブジェクト指向言語」であるといった考え方でいいのですね?
どうもありがとうございました!
No.2
- 回答日時:
そうですね。
JAVA、C++等では各イベントもクラスから派生させたインスタンスに対してメソッドをオーバーライドして使用するために同一の物と考えてしまいますね。でも言語によってはそのイベントが発生したら、プログラムが動き出すという言語が色々と存在します。VBなんかもオブジェクト指向ですがコードの中でクラス、インスタンスという意識はしないですね。ましてはイベントドリブン型COBOLなんて製品も見たことがあります(このボタンをクリックするとそのボタンに定義されたCOBOLのコードが動き出す。オブジェクトの定義は言語内ではされずCOBOLの中ではFILE SECTIONがあり内部ファイルがあるだけで外部ファイルとのアサインが定義情報として実行形式内に保存されている)。
イベントドリブンは単にバッチ処理とかコマンドライン実行とかの処理方式の1つであり、オブジェクト指向な言語ではイベントもクラスとして定義されていると言うことではないでしょうか?
正しい講習を受けたわけではなく現場で色々な言語を触っているのでそれに伴った知識です。定義として合っているかは解りません。
ありがとうございます。やはり、イベントドリブンでもいろいろな言語があるのですね。
わかりやすい解説ありがとうございました!
私も、まだまだ勉強致します。(T^T
No.1
- 回答日時:
SEの方に申し上げるのは恐縮なのですが、C++が登場する前から、既にUNIX上のX Window SystemなどはCでかかれていましたから、必ずしもそうとはいえないのではないでしょうか。
(C++だってオブジェクト指向としては不完全ですし、、、)
そもそもオブジェクト指向は、データを一まとめにして、操作関数を用意するという考え方をさらに進め、「データとその操作方法を一まとめにする」という発想がその元にあると思うのですが。
だから、イベントドブリンとはかなり概念が異なるという気がしますが、、、
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java オブジェクト指向プログラミングの実践本を紹介してください 3 2022/09/19 04:56
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/05/21 02:41
- Visual Basic(VBA) <excel vba>selenium basicのWebDriverの自動更新のエラーについて 1 2022/10/01 17:07
- PowerPoint(パワーポイント) パワーポイントのアニメーションについて 4 2023/06/14 16:25
- Visual Basic(VBA) Excel VBA オブジェクトマクロ 使用指定について お詳しい方教えてください。 共通エクセルフ 2 2023/03/14 17:26
- Java 複数TBLのオブジェクトを1つの変数(オブジェクト)でまとめて管理したい 1 2022/12/17 00:12
- Excel(エクセル) テキストの背後にあるオブジェクトとは 3 2023/01/03 20:22
- 医師・看護師・助産師 看護専門学校の入学志望動機の添削をお願い致します(400~800字以内) 2 2022/07/17 14:39
- オープンソース IT用語、ソースとオブジェクト、改変と翻訳と翻案の違いなど どのようにりかいすればよいのですか 1 2022/09/09 10:02
- IT・エンジニアリング teratailなどでプログラマー向いていないと言われてPTSD、でも諦めない。最低で何日要する? 2 2022/09/25 06:53
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンストラクタ内でのthisポインタ
-
オブジェクト型の変数が定義さ...
-
最小化したフォームを元に戻す
-
VisualC#でデザイナでくっつけ...
-
エディットコントロールでEnter...
-
C++ protectedにアクセス不可
-
既定のコンストラクタがない?
-
C# でフォームやクラスを利用...
-
MFCのCListCtrlでスクロールを検出
-
VB.NETでC#のイベントをオーバ...
-
c# ネットワークプログラム
-
OnPaintとOnDraw関数の違いにつ...
-
FriendとPublicの違い。。。
-
クラスのアドレスを引数として...
-
ユーザーフォームのVBAエラー
-
windowプログラム ピクチャー...
-
VB.NETで、DLLを頂いたんですが...
-
MFCアプリのコマンドラインでパ...
-
テンプレート指定クラスのコン...
-
【ASP.NET】 独自で作成したク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
オブジェクト型の変数が定義さ...
-
コンストラクタ内でのthisポインタ
-
C# panel内のコントロールの使...
-
最小化したフォームを元に戻す
-
メモリリークが発生するのはど...
-
オブジェクトをどこでdisposeす...
-
クラス内にWin32APIのコールバ...
-
イベントドリブンとオブジェク...
-
デザイナ時のエラー「オブジェ...
-
関数で値渡しと参照渡しではど...
-
C++の連想配列の使い方
-
【VC++6.0(MFC)】「Out of memo...
-
delete演算子によるメモリ解放...
-
ボタンを押すとラベルの文字を...
-
ゆかりネットで東北ずん子exを...
-
UMLでの「オブジェクト」と「イ...
-
CreateObjectとはどういう意味...
-
オブジェクトの廃棄
-
すべてのページにServer.Create...
-
既定のコンストラクタがない?
おすすめ情報