オブジェクト指向 の解説についての個人的メモ
オブジェクト指向 の解説についての個人的メモ
オブジェクト指向の 3つの指標
- 独立性
- 再利用性
- 拡張性
classのことだよ!?
class は 1,ものを隠せて 2,まとめられて 3,量産が可能
おk.クラスは設計図
設計図の’いいところ’は →
1. 事前に計画を建てられる
- 何が必要かが分かる
2. 再現が容易
- 壊れたり、なくなっても、同じものを作れる
- 量産が容易!
class = 設計図について考えて行こう!
例えば、学校を作る!何が必要?
- 学校らしい要素を上げていく!
+ 部活? → 野球部 吹奏楽部 漫研!
+ 部活には何が必要? → 道具 場所 顧問 部員 ルール!
例:野球部 の設計図
必要なもの
- バット:20本
- ヘルメット:10人分
- ボール:200球
- グローブ:10人分
- ネット:5個
- ベース:4つ
- ユニフォーム:10人分
- 9人の部員 + 1人マネージャ
立ち振舞
- 部員:走る、打つ、捕る、投げる、声をかける、休憩する
- マネージャ:応援する、ニコニコしてる
- ボール:跳ねる、飛ぶ
- グローブ:開く、閉じる
野球部のルール
- 活動時間は放課後から日没まで
- 活動後はグランド整備を行う
- 雨天時は校内で基礎練習を行う
みたいな?
これらを書き出して、実装していけば、野球部らしい振る舞いが出来上がるよね?
でも、学校がテーマなので、運動部を個別に実装するのは手間!
再利用性
共通部分を抜き出す → 抽象化
- 野球部、サッカー部、テニス部 → 運動部!
- 吹奏楽部、コーラス部、茶道部 → 文化部!
拡張性!
インスタンス
Product.find(color:pink)
← みたいなやつ
式:Object名.Function(Argument:指定)
日本語だと オブジェクト.関数(引数) ← 日本語の方が意味不明説.
英語で覚えるようにした...変数、引数が英語で?仮引数(parameter)と実引数(argument)