はじめに
本記事では、オブジェクト指向について私が理解したところまでを記述します。
オブジェクト指向とは
object=物体
by Google先生
なるほど、意味わからん。
ということで調べました。
オブジェクト指向は「概念」だ、ということだ。概念という言葉自体も難しいが、なんとなく意味はわかるだろう。物事や対象を丸ごとひっくる見たときの大まかな理解のことだ。
特に明確な回答はないということだと思います。
私が通学していたスクールではこのように学習しました。
アプリケーションを作成するときに、登場する役割ごとに分けて実装する方針のことを言います。
色々検索した結果、
愛
、車
、人間
この3つがやたらと出てきました。
モノ
、単体
、ハコ
などという認識だと思います。
私はこのように理解しておきます
愛
や車
では理解しにくかったので、
スマッシュブラザーズ
というオブジェクトを考えました。
スマッシュブラザーズ
の中には多くのキャラクター、つまりオブジェクト
が山ほどいます。
その中のドンキーコング
で説明します。
- ドンキーコングはAボタンでジャブをします
- ドンキーコングはBボタンでパンチを溜めます
- ドンキーコングはYボタンでジャンプします
- ドンキーコングはZボタンで掴み技をします
があったとします。
ここでドンキーコング
というオブジェクト(モノまたはキャラクター)を先に作ったとします。
先にドンキーコング
というオブジェクトを作ることで、ボタン操作のみを考えればいいことになります。
[ドンキーコング]
- Aボタンでジャブをします
- Bボタンでパンチを溜めます
- Yボタンでジャンプします
- Zボタンで掴み技をします
このようにすることで、全ての操作に(ドンキーコングは)という言葉を抜くことができます。
また、追加でCボタン
の仕様を決めたとしても、
ドンキーコング
というオブジェクトは既に存在するので、
- Cボタンはスマッシュ攻撃します
と機能を追加するだけでドンキーコングのCボタンの技が完成します。
クラス
クラス
は、設計図のようなもので、
属性
と操作
が中にはあります。
属性
はスマッシュブラザーズでは、キャラクター
操作
はAボタン
やBボタン
など。操作はプログラミング的にメソッドになります
この設計図を元に、インスタンス化
したら、
ドンキーコング
やファルコン
、ガノンドロフ
というオブジェクトが出来上がる。
ということになります。
instance=「事実」「実例」「実態」by Google先生
ドンキーコング
がAボタン
というメソッドを使用したらジャブする
という行動になります。
このようにドンキーコングは動きます。
オブジェクト指向のメリット
- 役割ごとにオブジェクトを分けることで、実装がしやすくなる
- 役割ごとにオブジェクトを分けることで、あとからコードを改変するときも、他のオブジェクトに影響しなくなる(コードの改変がしやすくなる)
逆にいうと、オブジェクト指向を意識しないと以下のようなことが発生します。
- オブジェクト内にさまざまな役割が入り組んでいて、どこに何があるのかわからない
- 1つの機能を変えた途端、その変更とは関係のないはずの機能が動かなくなってしまった
以上です。
このような形で私はオブジェクト指向
を理解しました。
終わりに
私は、多くの時間をrubyに費やしましたが、
何かモノをメソッドで操作したり、インスタンス変数を作ったりと、
あれは正しくオブジェクト指向だったということですね。
学習がある程度できて理解できました。
ある程度学習できたタイミングで今回のように基礎に戻るのも良いかもしれないですね。
以下今回の参考サイトです。
初心者向けに徹底解説!オブジェクト指向とは?
オブジェクト指向とは?|知っておきたいプログラミング用語を徹底解説
「オブジェクト指向」とは?プログラミングに必要不可欠な要素を解説!
オブジェクト指向とは?誰でもわかるようにやさしく解説
明日は日曜日ですが、気を引き締めて頑張ります!