銀河鉄道

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

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

オブジェクトって?

本で学んでみよう

オブジェクト指向とは

ざっくりいうと「片付け技術」
  • 「分類」して整理する技術
  • 「ムダ(重複)をなくす」ための「整理整頓」の仕組み

これ、大事

  • 分類(わける)
  • 重複排除(すてる)
  • 整理(ととのえる)

整理に向かうってこと?

整理整頓を目指せ

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

プログラミング初期は「作れるか?」しかなかった

プログラミング黎明期
  • コンピュータが動くこと自体が、すごいこと
  • 「長く使う」ことは想定してない
  • 「目の前のメモリ」を節約するほうが重要

動く!すごい!

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
月うさぎ

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

記事一覧