初心者向け!! オブジェクト思考とは 【 プログラミング豆知識 】
こんにちは、みおはぴです!
プログラミングを学ぶ上で、『オブジェクト指向』という言葉がよく出てくると思います。
でもオブジェクト思考とは、一体何なのか分からないという方も多いと思います。
という事で今回は、オブジェクト思考について、初心者の方にも分かりやすく解説していきたいと思います。
それでは早速やっていきましょう!
まず注意点
オブジェクト指向について解説をする前に、覚えておいてほしい注意点があるので、そこを説明したいと思います。
それは、「オブジェクト指向に明確な説明はない」というところです。
どういう事?と思うかもしれませんが、オブジェクト指向はあくまでも『概念』なんです。
そのため、意味はなんとなく分かっても、解釈は人それぞれなんです。
なので、オブジェクト指向に明確な説明はなく、解釈も人それぞれという事は覚えておいてください。
そして、100%理解しようと思うと、返って頭が混乱してしまうので、なんとなく雰囲気を掴もうくらいで考えてください。
【早い者勝ち!】.com/.net/.jp ドメイン取るならお名前.com
オブジェクト指向とは
オブジェクト指向は、プログラミングでよく使われる概念なんですが、今回は、3つに分けて解説をしていきたいと思います。
①対象を操作するイメージ
オブジェクト指向プログラミングとは、プログラムを手順ではなく、モノの作成操作として見る考え方です。
「オブジェクト=モノ」を意味します。
例えば、「パソコン」というモノを操作するときに、中でどういうプログラムが動いているかを知る必要はありません。
マウスで操作すると、動かすことができるのです。
「こういう”モノ”を作りましょう」そして「その”モノ”を使いましょう」というのがオブジェクト指向の考え方になります。
②大変な作業を無くす
プログラムというのは、上から順番に動作手順を書いていけば、とりあえずは動きます。
しかし、場合によっては、とても大変な作業になります。
ゲームを例に考えてみましょう。
- (登場人物1)〇〇は、Aボタンを押すと歩く。Bボタンを押すと走る。Cボタンを押すと止まる。
- (登場人物2)△△は、Aボタンを押すと歩く。Bボタンを押すと走る。Cボタンを押すと止まる。
- (登場人物3)□□は、Aボタンを押すと歩く。Bボタンを押すと走る。Cボタンを押すと止まる。
というようにプログラミングをしても構いません。
ただ、このゲームの登場人物がもし100人いたら?
このプログラムを100回入力しないといけません。
100人ならいけると思う人は、1000人、1万人と想像してみてください。
プログラミング担当者は、とても大変で苦痛ですよね。
そうならないためにも、「登場人物」というモノを初めから定義しておいて、それを使うという方法があるんです。
- 「登場人物」というモノを先に作っておいて、Aボタンを押すと歩く。Bボタンを押すと走る。Cボタンを押すと止まるようにしておく。
- 〇〇は、1の「登場人物」をコピーして、服の色を青色にする。
- △△は、1の「登場人物」をコピーして、服の色を黄色にする。
- □□は、1の「登場人物」をコピーして、服の色を緑色にする。
このようにすれば、プログラムの量も少なくなり、もし新しい機能を追加したい時にも1のプログラムだけを変更すればいいので、簡単にすることが出来ます。
契約でAmazon券プレゼント!シェアオフィス検索サイト「ハブスペ」
同じようなモノを作りやすい
例えば、先ほどの登場人物の他に、動物を登場させたとき、
「Aボタンを押すと歩く。Bボタンを押すと走る。Cボタンを押すと止まる」という機能は登場人物と同じですよね。
なので、この機能は、再利用した方が良いですよね。
これも、オブジェクト指向の考え方です。
すでにあるモノを上手く使って、加工したモノを作れば、効率はとても良くなります。
オブジェクト指向の知っておきたい用語
ここからは、少し難しくなってくるかもしれません。
ですが、オブジェクト指向を使う上では、基本となる用語なので、分かるところまでで良いので、付いてきてみてください。
オブジェクト
オブジェクトは、オブジェクト指向の根本です。
オブジェクト=対象、モノ
オブジェクトは、プログラミングにおいては、データと処理の集まりを意味しています。
あなたには、「名前」「性別」といったデータ(個体の情報)があり、何かを「見る」「聞く」「話す」といった処理を持っていますよね。
つまり、あなたには、データと処理が集まっている事になります。
なので、あなたもオブジェクトなんです。
- クラス
クラスとは、オブジェクトの設計書のようなものです。
例えば、実際に作られたゲームはオブジェクトです。
しかし、ゲームの設計図はクラスになります。
なので、クラスとは設計書というイメージを持っておくと良いかもしれません。
- プロパティ
オブジェクトが持っているデータのことをプロパティと言います。
例えば、ゲームというオブジェクトは、「会社」、「機種」などといったプロパティを持っていることになります。
- メソッド
メソッドとは、オブジェクトが持っている処理のことです。
ゲームを例にすると、(登場人物が)歩く、走る、曲がるなど、オブジェクトが何かしらのアクションを起こす処理になります。
インスタンスとは、実態、事例をさします。
プログラムでオブジェクトを使う時に生み出されるものとなります。
また、設計図からオブジェクトを作ることをインスタンス化と呼びます。
カプセル化
オブジェクトが持つデータや処理のうち、別のオブジェクトから直接利用される必要のないものを隠すことを「カプセル化」と言います。
また、利用する場合は、外部から操作するために作られた処理を設けることをカプセル化という時もあります。
継承
特定のオブジェクトの機能を引き継いで使うことを「継承」と言います。
似たようなオブジェクトを複数作る時に、全てのプロパティやメソッドをプログラミングするのは時間がかかりますよね。
しかし、継承を使うと、元の機能を引き継いで使うことが出来るので、同じ機能を簡単に実装することが出来ます。
ポリモーフィズム(多能性)
オブジェクトなどのデータ型に関する操作が統一的であることを「ポリモーフィズム(多能性)」と言います。
ゲームは、説明書を読まなくてもだいたい使い方は分かりますよね。
また、家電なども様々なメーカーはありますが、操作方法はほぼ全部同じですよね。
それと同じように、プログラムも同じ処理の名前で動いてくれると、処理名を覚える必要がなくなるので、楽ですよね。
このように、クラスによって同一のメソッドで、異なる処理が行える性質のことをポリモーフィズムと言うのです。
今日のまとめ
今回はオブジェクト指向について解説をしていきました。
最後の方は少し難しかったかもしれませんね。
今日の要点
- 大変な操作を無くすことが出来る
- 対象を操作するイメージ
また、最初にも言った通り、100%理解する必要はないので、雰囲気を掴んでいただけていれば良いかなと思います。
この記事が少しでも参考になっていれば嬉しいです。
Twitterで普段のプログラミングの様子を投稿していたり、DMで質問などの募集もしています。
ぜひ一度覘いてみてください。
みおはぴ🐰 @大学生プログラマー (@mio_Processing) | Twitter
という事で今回はこの辺で終わりにしたいと思います。
また次回も見てもらえると嬉しいです!
合わせて読みたい
Rubyとは 人気のプログラミング言語 Rubyを徹底解説!! 【 プログラミング豆知識 】 - みおはぴの毎日プログラミング
あるコツを押さえるだけ!? 挫折しないプログラミングの独学方法 【 プログラミング豆知識 】 - みおはぴの毎日プログラミング
初心者にも分かりやすく徹底解説!! プログラミングとは? 【 プログラミング豆知識 】 - みおはぴの毎日プログラミング