LoginSignup
32

More than 1 year has passed since last update.

結局、オブジェクト指向とは。スマッシュブラザーズで例える。

Last updated at Posted at 2021-09-11

はじめに

本記事では、オブジェクト指向について私が理解したところまでを記述します。

オブジェクト指向とは

object=物体by Google先生

なるほど、意味わからん。
ということで調べました。

初心者向けに徹底解説!オブジェクト指向とは?

オブジェクト指向は「概念」だ、ということだ。概念という言葉自体も難しいが、なんとなく意味はわかるだろう。物事や対象を丸ごとひっくる見たときの大まかな理解のことだ。

特に明確な回答はないということだと思います。
私が通学していたスクールではこのように学習しました。

アプリケーションを作成するときに、登場する役割ごとに分けて実装する方針のことを言います。

色々検索した結果、
人間この3つがやたらと出てきました。

モノ単体ハコなどという認識だと思います。

私はこのように理解しておきます

では理解しにくかったので、
スマッシュブラザーズというオブジェクトを考えました。

スマッシュブラザーズの中には多くのキャラクター、つまりオブジェクトが山ほどいます。
その中のドンキーコングで説明します。

- ドンキーコングはAボタンでジャブをします
- ドンキーコングはBボタンでパンチを溜めます
- ドンキーコングはYボタンでジャンプします
- ドンキーコングはZボタンで掴み技をします

があったとします。

ここでドンキーコングというオブジェクト(モノまたはキャラクター)を先に作ったとします。
先にドンキーコングというオブジェクトを作ることで、ボタン操作のみを考えればいいことになります。

[ドンキーコング]
- Aボタンでジャブをします
- Bボタンでパンチを溜めます
- Yボタンでジャンプします
- Zボタンで掴み技をします

このようにすることで、全ての操作に(ドンキーコングは)という言葉を抜くことができます。

また、追加でCボタンの仕様を決めたとしても、
ドンキーコングというオブジェクトは既に存在するので、

- Cボタンはスマッシュ攻撃します

と機能を追加するだけでドンキーコングのCボタンの技が完成します。

クラス

クラスは、設計図のようなもので、
属性操作が中にはあります。

属性はスマッシュブラザーズでは、キャラクター
操作AボタンBボタンなど。操作はプログラミング的にメソッドになります

この設計図を元に、インスタンス化したら、
ドンキーコングファルコンガノンドロフというオブジェクトが出来上がる。
ということになります。

instance=「事実」「実例」「実態」by Google先生

ドンキーコングAボタンというメソッドを使用したらジャブするという行動になります。
このようにドンキーコングは動きます。

オブジェクト指向のメリット

  • 役割ごとにオブジェクトを分けることで、実装がしやすくなる
  • 役割ごとにオブジェクトを分けることで、あとからコードを改変するときも、他のオブジェクトに影響しなくなる(コードの改変がしやすくなる)

逆にいうと、オブジェクト指向を意識しないと以下のようなことが発生します。

  • オブジェクト内にさまざまな役割が入り組んでいて、どこに何があるのかわからない
  • 1つの機能を変えた途端、その変更とは関係のないはずの機能が動かなくなってしまった

以上です。
このような形で私はオブジェクト指向を理解しました。

終わりに

私は、多くの時間をrubyに費やしましたが、
何かモノをメソッドで操作したり、インスタンス変数を作ったりと、
あれは正しくオブジェクト指向だったということですね。
学習がある程度できて理解できました。

ある程度学習できたタイミングで今回のように基礎に戻るのも良いかもしれないですね。

以下今回の参考サイトです。
初心者向けに徹底解説!オブジェクト指向とは?
オブジェクト指向とは?|知っておきたいプログラミング用語を徹底解説
「オブジェクト指向」とは?プログラミングに必要不可欠な要素を解説!
オブジェクト指向とは?誰でもわかるようにやさしく解説

明日は日曜日ですが、気を引き締めて頑張ります!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32