【プログラミング学習】オブジェクト指向でなぜつくるのか
記事更新日:2022-08-31
「指向」
してみたい
「オブジェクト指向」の基本を学ぶなら、まずはこれ
けっきょく、オブジェクト指向とは何?
- 「分類」して整理する技術
- 「ムダ(重複)をなくす」ための「整理整頓」の仕組み
たとえるなら、「掃除機」と「整理Box」
「指向」だから、指をさして向かえばいいのかな
「整理整頓」を目指しましょう
ムダなゴミを掃除機で吸い取り、整理用の箱に仕分けする。
「片付け技術」と考えてよさそうです。
なぜ整理整頓が必要なのか
昔は「作るれるかどうか」しかなかった
「作る」が関心事で、「ずっと使いたい」わけじゃなかった
コンピュータが動くこと自体が、すごかったから
「長く使う」ことは想定してないので、「目の前のメモリ」を節約するほうが重要でした。
2000年問題で、考え方が変わった
【2000年問題】
年号を2桁で記述していたため、2000年が「00年」になってしまう
2桁にしていたのは、メモリ節約のため
「目の前のことだけではダメ」と身にしみる
すでに作ったプログラムを
どう修正するか
考え方が、どう変わったのか
- 保守性
- コードが読めない → 読みやすくする
- 品質向上
- コードが複雑 → シンプルにする
- 再利用
- コードは使い捨て → 何度も使えるようにする
そのために登場したのがオブジェクト指向
オブジェクト指向の三大特徴
オブジェクト指向1.クラス
【クラスの役割】
- まとめる
- 隠す
- たくさん作る
「まとめる」
具体的には、「変数とメソッド」をまとめること
【「クラスという箱」に入れるメリット】
- 探しやすくなる
- 名前が付けやすくなる
たしかに洋服も、種類ごとにケースに入れると探しやすくなる
「変数とメソッド」を
まとめて入れる箱
「隠す」
具体的には、変数とメソッドを「private」にすること
たしかに部屋の中も、隠したらキレイになる
隠して使うなら「private」
「たくさん作る」
具体的には、次のJavaの例がわかりやすい
TextFileReader reader1 = new TextFileReader();
TextFileReader reader2 = new TextFileReader();
reader1.open("C:¥¥a.txt");
reader2.open("C:¥¥b.txt");
char ch;
ch = reader1.read();
ch = reader2.read();
reader1.close();
reader2.close();
newで、たくさん作れる
オブジェクト指向2.共通ロジックを一部変えて使う|ポリモーフィズム
共通ロジックを使うけど、足りないものは追加できる
「ポリモーフィズム」っていう言葉が嫌い
オブジェクト指向3.共通の定義を借りる|継承
共通部分は借りてきて、新しいクラスを作る
新しく買うよりもレンタル利用
プログラムは、最初から最後まで「整理」の技術
整理整頓の繰り返し
- 分析
- 「仕事の流れ」を整理する
- 要求定義
- 「コンピュータで何をするか」を整理する
- 設計
- 「コード」を整理する
やっぱり「整理整頓」がキーワード
大切なことは「キレイにしたい」という心がけ
オブジェクト指向が難しいのは、使いこなし方がわからないから
掃除機と整理Boxがあっても、掃除が急にできるわけじゃない。
「使いこなし方」に慣れるしかないです。
「完璧にキレイにする」を目指すのではなく、「キレイな方向」を目指す
目指すものが変わる
まとめ:整理整頓のオブジェクト指向
- 同じものをまとめる
- 「分類」は技術
- 「ムダ」を捨てる
- いざとなったら借りればいい
- 隠してキレイにする
- 「散らかる」とは、何も隠れてないこと
「オブジェクト」は、整理箱のことだった
まずは知識の整理から
オブジェクト指向についてはこちらも
2022-08-31
編集後記:
この記事の内容がベストではないかもしれません。