なぜオブジェクト指向を使うのか。
類似処理が存在するときに、修正が発生した場合一つ一つのクラスに処理を生書きしていると変更箇所が多くなってしまう事と、類似処理なのに挙動が統一されなくなる可能性がある為。
複数人での開発時に、インターフェースが存在していると、継承したインターフェイスのデータと振る舞いしか使うことができなくなる為、オレオレコードが存在しにくくなる。
基本用語集
object(オブジェクト)
データと振る舞いの集合体を表すもの
パソコンを操作している事を例に挙げると、
object
- パソコン
- ディスプレイ
- キーボード
- マウス
- 人
この様な形に分解できる
property(プロパティ)
objectが持っているデータのことをpropertyと言う。
パソコンというobjectは「CPU」「メモリ」「マザーボード」などのpropertyを持っている事になる。
オブジェクトの状態を示すものもpropertyとして持つこともある(パソコンの起動状態等)
method(メソッド)
Methodはobjectが持っている処理(関数)。
パソコンの例だと「電源をつける」「電源を落とす」「スリープ状態ににする」といったobjectが振る舞いをする処理のこと。
instance(インタスタンス化)
objectを呼び出して実態として生み出されるもの
Newして使うことが多い
pc1 = new pc();
上記の様な書き方をする
継承
Objectやinterfaceの機能を引き継いで使用することを継承と言う。
PCを例に挙げると「ノートパソコン」「デスクトップパソコン」などのデータと振る舞いが同一のものを作る際に同じ機能を実装できます。
カプセル化
外部からいじる必要のない振る舞いやデータを隠蔽することを指す。
Object内部のデータを参照したり使用したい場合は外部から操作可能な振る舞いを設ける
メソッドを使う人達にとって処理の中身がどうなっているのかはわからなくても、何ができるのかメソッド名で分かればいいのでカプセル化が有効。