銀河鉄道

【プログラミング学習】オブジェクト指向でなぜつくるのか

サムネイル
オブジェクト指向整理する
オブジェクトを
「指向」
してみたい

「オブジェクト指向」の基本を学ぶなら、まずはこれ

けっきょく、オブジェクト指向とは何?

  • 「分類」して整理する技術
  • 「ムダ(重複)をなくす」ための「整理整頓」の仕組み

たとえるなら、「掃除機」と「整理Box」

「指向」だから、指をさして向かえばいいのかな

【ざっくり要約】

「整理整頓」を目指しましょう

ムダなゴミを掃除機で吸い取り、整理用の箱に仕分けする。

「片付け技術」と考えてよさそうです。

なぜ整理整頓が必要なのか

昔は「作るれるかどうか」しかなかった

「作る」が関心事で、「ずっと使いたい」わけじゃなかった

コンピュータが動くこと自体が、すごかったから

「長く使う」ことは想定してないので、「目の前のメモリ」を節約するほうが重要でした。

2000年問題で、考え方が変わった

【2000年問題】
年号を2桁で記述していたため、2000年が「00年」になってしまう

2桁にしていたのは、メモリ節約のため

「目の前のことだけではダメ」と身にしみる

新規に作るよりも
すでに作ったプログラムを
どう修正するか

考え方が、どう変わったのか

  1. 保守性
    • コードが読めない → 読みやすくする
  2. 品質向上
    • コードが複雑 → シンプルにする
  3. 再利用
    • コードは使い捨て → 何度も使えるようにする

そのために登場したのがオブジェクト指向

オブジェクト指向の三大特徴

オブジェクト指向1.クラス

【クラスの役割】

  • まとめる
  • 隠す
  • たくさん作る

「まとめる」

まとめて整理整頓すること自体に価値がある

具体的には、「変数とメソッド」をまとめること

【「クラスという箱」に入れるメリット】

  • 探しやすくなる
  • 名前が付けやすくなる

たしかに洋服も、種類ごとにケースに入れると探しやすくなる

クラスとは
「変数とメソッド」を
まとめて入れる箱

「隠す」

できるかぎり隠すべき

具体的には、変数とメソッドを「private」にすること

たしかに部屋の中も、隠したらキレイになる

共通して使うなら「public」
隠して使うなら「private」

「たくさん作る」

1つのクラスからインスタンスをたくさん作れる

具体的には、次の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.共通の定義を借りる|継承

共通部分は借りてきて、新しいクラスを作る

新しく買うよりもレンタル利用

プログラムは、最初から最後まで「整理」の技術

整理整頓の繰り返し

  1. 分析
    • 「仕事の流れ」を整理する
  2. 要求定義
    • 「コンピュータで何をするか」を整理する
  3. 設計
    • 「コード」を整理する

やっぱり「整理整頓」がキーワード

大切なことは「キレイにしたい」という心がけ

オブジェクト指向が難しいのは、使いこなし方がわからないから

掃除機と整理Boxがあっても、掃除が急にできるわけじゃない。

「使いこなし方」に慣れるしかないです。

どうやったら保守がしやすくなるか、再利用がしやすくなるかを考えましょう。

「完璧にキレイにする」を目指すのではなく、「キレイな方向」を目指す

時代とともに
目指すものが変わる

まとめ:整理整頓のオブジェクト指向

  • 同じものをまとめる
    • 「分類」は技術
  • 「ムダ」を捨てる
    • いざとなったら借りればいい
  • 隠してキレイにする
    • 「散らかる」とは、何も隠れてないこと

「オブジェクト」は、整理箱のことだった

まずは知識の整理から

オブジェクト指向についてはこちらも

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。

記事一覧