「オブジェクト指向」と言うと、イマドキのITエンジニアの常識ではあるが、「なんでオブジェクト指向を使うの?」という素朴な疑問への答えが、あまりない。そこで、簡単に説明する。今、あなたは小さな商売(駄菓子屋とか)を始めたとしよう。初めは一人で全部の仕事をする。仕入れから店番から帳簿付けまで。するうちに、商売繁盛、ドンドン忙しくなって、24時間働いても、仕事が終わらない・・・。仕事を誰かにしてもらうその場合の解決策は、「人を雇う」こと。普通の人間社会では人を雇うと「お金が掛かる」が、「ここ」は不思議な世界で、人を雇ってもお金が掛からない。必要な時に「誰か来て!」と言うと、いくらでも来てくれて、不要になるとサッといなくなってくれる、ステキな人たち。小人(もしくは妖精)とかロボットみたいなものだと考えよう。「あなた」の仕事は、小人を管理することあまりに忙しいので、小人を5人雇ったとしよう。それぞれ、店番/仕入れ/帳簿/料理/洗濯係だ。あなたの仕事は小人を管理することだけ。それぞれの小人に「○○しといてね~」とお願いすれば、「どのように処理されるか」は考えなくて良い。基本は何もせず、小人たちが何か報告してくれば、それに対応すれば良いわけだ。「構造化プログラミング」は、一人で全部やっていた状態。(状態A)小人の導入は「オブジェクト指向」である。(状態B)状態Aの場合、あなたの机の上に全ての必要なものが、全部乗っかっている。(帳簿やら、サンプルやら、なにやらで、机の上がゴチャゴチャ)状態Bでは、小人たちの机の上に、それらの物があるので、あなたの机の上はスッキリ!小さいシステムの場合、「構造化プログラミング」でもOK。小人を作る手間が掛かるからね。ある程度大きいシステムの場合、全部を自分一人でやると、ゴチャゴチャになる。よって、小人を雇って、それぞれの小人に任せればよい。小人を使って「オブジェクト指向」を説明する「クラス」というのは型で「オブジェクト」というのは実体。小人は「クラス」で、小人のジョンは「オブジェクト」。小人のホルヘも「オブジェクト」。小人という「クラス」を一回作っておくと、ジョン/ホルヘ/マーク/リンダ・・・、と無限に小人のオブジェクトを作れる。ジョンは「店番係の小人」、ホルヘは「仕入れ係の小人」だ。この場合、「小人」のクラスからジョンやホルヘを作るよりも、「店番係の小人」「仕入れ係の小人」というクラスを作って、それからジョンやホルヘを作った方が良い。してかというと「店番係の小人」がもっと必要になった場合、「店番係の小人」クラスを使って、「店番係」のマークとか「店番係」のリンダがすぐに作れるから。継承さて、「小人」クラスから、「店番係の小人」クラスや「仕入れ係の小人」クラスを作ることを、「継承」と呼ぶ。「店番係の小人」「仕入れ係の小人」は、「小人」としての特徴を持つから、まず「小人」クラスを作った方が楽なわけだ。「小人」クラスを変更すると、「店番係の小人」のジョンも空を飛べるようになる。「帳簿係の小人」マリアに帳簿を渡したため、あなたの机の上はスッキリ。帳簿を読むのはマリアだけだ。いう風に、それぞれのオブジェクト(マリアなど)に、データを渡してしまうことを、カプセル化と呼ぶ。帳簿は誰でも読めるようにしても良いし(public)、マリアだけが読めるようにしても良い。(private)普通はマリアだけが読めるようにする。(private)メソッドマリアに、「今月の売り上げ出して~」とか「四半期の結果を集計して~」とか命令する。あなたは帳簿を読む必要はない。読んで集計するのは「帳簿係」のマリアの仕事だ。これをメソッドと呼ぶ。ボタンがあって押すと結果が出てくるみたいな感じ。飽きてきたので、まとめる「オブジェクト指向」は一見難しいが、実は大したことは無い。人間でも仕事が多いと、多くの人に分担する。同じように複雑なシステムを「構造化プログラミング」だけで書くと、ゴチャゴチャになってくる。「オブジェクト指向」は、誰かに任せる(特定のオブジェクトに任せる)ことで、分担しているだけの話。実際の設計でも「各オブジェクトを小人だ」と思うと、設計しやすいで。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。Reserved.目次ページの。