【開発】オブジェクト指向の定数と変数
こんにちは!個人でゲーム作ってます。ありすがわです。
今回は学習真っ只中の「プログラミング」です。
もう一度初心に戻って「オブジェクト指向とはなんたるか!」を復習がてら触れていたところ個人的にしっくりくる考え方があったので共有します!
そうそう。オブジェクト指向にはいろんな考え方があると思いますが、ここでの考えは素人による個人的な感想ですので、どうか温かい目で見ていただければと思います。
ではまいりましょー!
オブジェクト指向を紐解く。
定数とは、不動の値です。変わることがない数ですよね。
一方で変数とは、変動の値です。変わる数です。
私は最近、全ての物事にこれを当てはめて考えてみるのにハマっていて、視点がガラッと変わって見えるのと、余計な事を考えなくて済むので、理解も早くなりました。
プログラムでも同様、定数と変数の視点でオブジェクト指向を見てみると、その本質が分かったんです。
では、その本質とは…。
ズバリ、「定義と利用」です!
…なんのこっちゃ!なので次の段階へ。
定義
クラスを定めること。
利用
クラスを使うこと。
…そのまんまやないかい!クラスってなんぞ!
クラス
作りたいモノ(オブジェクト)の設計図
…モノ(オブジェクト)ってなんだーーーー!
モノ(オブジェクト)
データと処理のカタマリ
データ、ショリ…
データ
主に変数。
処理
主に関数。
…ということで、階層的に説明しましたが、振り出しの「定義と利用」についてまとめるとこんな感じです!
定義とは、データと処理がまとめられた、モノの設計図であるクラスをはっきりと定めること。
利用とは、定義されたクラスというモノの設計図を、モノの完成という目的達成のために使うこと。
これがモノの設計図であるクラスに注目して、プログラミングするから「オブジェクト指向プログラミング」というわけですね!
…そう。オブジェクト指向はクラスを定義して利用し、オブジェクトを作るだけでいいんです。
ここで話を少し脱線させ、難しい話になりますが、オブジェクト指向には「継承」「カプセル化」「多態性」という、知っておくことをおすすめする3つの概念があります。
でも、これ理解しなくていいんです。「知っておけ」と言ってるのに「理解しなくてもいい」ってめちゃくちゃですが、それら三つを使わなくてもオブジェクト指向プログラミングできてしまうという事実を覚えてください。
あくまで、それら三つは「あったら便利」なだけで「無理に使わなくてもいい」ものです。
たった一つ変わらないことは「クラスを定義して利用する」ということです。
定数と変数
ここで、冒頭に説明した「定数」と「変数」に当てはめて考えてみてください。
定数は不動の値。つまり、根底から覆ることのない要素を指します。そういえば、「本質」って言葉がありましたね。
オブジェクト指向における本質とは、クラスを定義して利用することです。これが定数になります。
一方で変数とはなんでしょうか?変数は変動の値ですよね。何かがあれば変わるということ。つまりあったら変わるけどなくてもいいものです。
…ありましたね。あったらいいもの。そう、オブジェクト指向に必要とされる「継承」「カプセル化」「多態性」です。必要なのに必要でない。すごくややこしいですが、あくまでこれらは変数であり、必要になったら勉強すればいい概念なんですよね。
これからオブジェクト指向に触れなければならない方、一度変数を無視して徹底的に定数を理解してみてください。クラスを定義してクラスを利用する、これがオブジェクト指向の本質であり、自身の血肉になるほど叩き込めば、きっとマスターできるはずです。
そのあとで変数を学べばいい、ということですね!
エンディング
こんな感じで復習したことを言語化してみました!わかりやすかったですかね?そうでないならすみません…。
今回私が書いたことは、あくまで個人の考えであり、超入門です。もっと専門的なお話をしている方はたくさんいらっしゃると思いますので、気になった方はご自身で調べてみてください!
長くなってしまって申し訳ありません!
読んでいただきありがとうございました!
それでは、またー!