現役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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VC++6.0(MFC)】「Out of memo...
-
メモリリークが発生するのはど...
-
ボタンを押すとラベルの文字を...
-
最小化したフォームを元に戻す
-
C# panel内のコントロールの使...
-
関数で値渡しと参照渡しではど...
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
excel vba グラフ データラベル...
-
(UWSC) 「#32770」の意味わかり...
-
VC++ Express m_hWnd
-
IncludeではなくClassで宣言す...
-
DebugクラスとTraceクラスの違い
-
DataGridViewのセルに斜線を引...
-
ユーザーフォームのVBAエラー
-
ダイアログ表示時にチェックボ...
-
windowプログラム ピクチャー...
-
VB.NETで、DLLを頂いたんですが...
-
正規表現 [^/]+ の意味を教えて
-
【ASP.NET】 独自で作成したク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
オブジェクト型の変数が定義さ...
-
C# panel内のコントロールの使...
-
コンストラクタ内でのthisポインタ
-
関数で値渡しと参照渡しではど...
-
ボタンを押すとラベルの文字を...
-
クラス内にWin32APIのコールバ...
-
【VC++6.0(MFC)】「Out of memo...
-
オブジェクトをどこでdisposeす...
-
イベントドリブンとオブジェク...
-
最小化したフォームを元に戻す
-
Excel2003VBAからIE64bitを制御
-
delete演算子によるメモリ解放...
-
デザイナ時のエラー「オブジェ...
-
オブジェクト指向を理解できない。
-
SetとNothingの存在意味?
-
vectorに格納されたオブジェク...
-
プログラミング
-
VB6では、Applicationは未定義...
-
メモリリークが発生するのはど...
-
FriendとPublicの違い。。。
おすすめ情報