k_yoshidaです。オブジェクト指向の学習を研修で行ったのでまとめてみました。
オブジェクト指向とはどのような事か
オブジェクトというのは物, 物に重点をおいた考え方で物事を整理し,ロジックを作っていく考え方です。 物視点なのでオブジェクト同士がメッセージングを行いメッセージを受け取ると内容を解釈し実行,処理を行うフローです。 オブジェクト指向言語と呼ばれるプログラミング言語にはクラスという概念がある, クラスというのはフィールド,メッソドなどを一括りにしたオブジェクトの事です。
オブジェクトがメッセージを受け取った時メソッドが呼びだされて処理の実行がされます。
クラスを実行するとインスタンスが生成されます。実行データなどの集合したオブジェクトです。
フィールドにはクラスの属性,データが入っていて,メソッドは処理などが入っている関数です。
システムになるとクラスがたくさん集まっていて関係を持つクラスに紐付いて処理が実行する
オブジェクト指向言語には主に3つの考え方があります。
- 継承
- ポリモーフィズム
- カプセル化
継承
オブジェクト指向では継承という機能があります。 クラスを継承するとき,継承する側を子クラス,される側を親クラス この関係を親子関係といい,親子関係を持つ子クラスは親クラスの機能を継承し,使用することが出来るようになります。
ポリモーフィズム
親クラスから子クラスに継承を行うと前記のように機能が継承する、その継承された機能を使うかどうか設定したり,新しく機能をプログラミングしオーバーライドさせたりする事をポリモーフィズムといい、システムの変更に柔軟に対応する事が出来る。またオブジェクトが多様性をもつ
カプセル化
複雑な処理を含んだオブジェクトを簡単に表現するのにカプセル化という機能がある。カプセル化を行うと抽象化することができ,機能の全体像を知らなくても操作さえ知っていれば扱えるようになる。また簡単になったことで,メンテナンス性の向上を見込めるようになる。他のメッソドから変更させたくないデータ,処理内容を隠蔽することができてより安全なプログラミングを行えるように出来る。
オブジェクト指向のメリット・デメリット
- メリット
- コードの再利用が他の言語よりも容易なので,大規模開発や複数人での開発で向いている事
- ライブラリ開発に向いている
- デメリット
- 学習コストが大きい
- 設計の段階で,変更しない部分変更があるであろう部分を決めておかないと帰って工数が増大してしまう
まとめ
オブジェクト指向を学習することで,なぜ多くの場面でオブジェクト指向が使われるのかを理解出来るようなってきました。 大規模開発やチーム開発においてオブジェクト指向を用いることで無駄をなくせる,といったことが出来きます。
オブジェクト指向の考え方はここに記述した事はごく一部です。オブジェクト指向をマスターするためにはまだまだ勉強不足です。思考通りコードを書くことはもっと難しい事なのでコードを描きながら学習していきたいと思います。