オブジェクト指向の続き
どうもおはようございます。
クローバーフィールドの伊関です。
いよいよ三日目ともなれば
そろそろ本格的なものを作り出すのではないかと思ったあなた、
甘いですね。
世の中のド素人がそんなホイホイ作れるわけがない!!(ハズキルーペの渡辺謙風に)
意味のない啖呵を切ったところで、
前々回にちょっとだけ書いたオブジェクト指向について何とかわかってきたので
そのことを復習がてらにちらほらと。
◎オブジェクト指向によるコードの実装
1、まずプログラムを車に例えます。車を作るにはまず設計図が必要です。これがclassと呼ばれる箱型のコードでここにそれぞれに必要な設定を実装していきます。
2、その中に部品の設計図も書き込んでいくわけですが、その前にこの車が何キロのスピードが出て、どれくらいの角度で曲がれるのか事前に決めておかねば、どんな規格の部品を作ったらいいのかわからないので、一番にスピード角度などの数値を設定します。これを”変数の初期化”といいます。
3、2で変数の初期化を行った後、mesodというコードを実装します。これが車でいうハンドル、アクセル、ブレーキという個々の部品です。しかし一人ですべての難解な部品の組み立てを行うのは簡単にはできません。ここにオブジェクト指向の一つの利点があります。それは多人数で分担して作業が行えるのです。つまり、一つの部品をそれぞれに割り振って作成してもらい、それを集めて最後に組み立てるのです。部品の規格条件であるスピードや曲がる角度などは予め設定されているのでその規格に従って作ってもらいます。(つまり初期化段階の変数を変更すればすべてのmesodに反映される)
4、組み立てが終わったら製品として完成。これを”実体化”といいます。ここにまたオブジェクト指向のもう一つの利点があります。車を実際運転すると触るのは主にはハンドル、ブレーキ、アクセルぐらいで、中身であるエンジンに触れることはないし、見る事すらほとんどないでしょう。オブジェクト指向を用いたプログラムはそれと同じことが可能で、実際に操作する時はコードの中身を見ずに実体化したものだけ動かせばいいのです。。
5、上記のことがオブジェクト指向の概略ですが、オブジェクト指向にはもうひとつ”継承”という特徴があります。例えば「運転できる」に「テレビも見れる」を付けたいと思ったとき、現実では従来の機能をそのまま残したまま新たな機能を搭載することも可能ですが、オブジェクト指向を用いて実体化したプログラムを使えば「運転できる」という元々の性能を残したまま、新たに「テレビが見れる」という機能を追加することができるのです。これを機能の”継承”といいます。
オブジェクト指向には他にも”カプセル化”や”多様性”といった特徴もあるようなのですが、それはまた別の機会に。
一応教科書っぽく書いてみましたがいかがだったでしょうか?
正直ここまでドヤ顔で書いて全然言ってることが違ってたら面白すぎるので、違う部分はコメントにてご指摘いただければと思います。
では。