Flashプログラミングの基礎の基礎はオブジェクト指向だ
いよいよプログラミングの説明に入りたいと思います。

で、プログラミングの前にどうしても理解しておいてほしいことのひとつに、
オブジェクト指向があります。オブジェクト指向はプログラミングの概念であって言語そのものを
あらわしてはいません。

またわれわれの生活圏にあるさまざまなことを考察すると簡単にりかいしやすかったりします。
ではがんばって理解してください。



オブジェクト指向って?

2010年度以降のIT事情において、コンテンツ系の開発案件が急激に伸びるでしょう。その核をなす技術がOOP(ObjectOrientedPrgraming)です。なのでここでは、なんといわれようとこれを理解していただきましょう。

ブジェクト指向は、プログラミングに秩序と平和をもたらす考え方です。(まじめに言っていますよ)これがある世界とない世界では、おそらく天と地との違いがあると思われます。

でも・・・概念的なことのプログラミング言語への持込なので、技術的に特別に難しいと考えるひつようはありません。おそらくオブジェクト指向を一番理解しやすいのは、家庭の主婦です。毎日オブジェクト指向をして、オブジェクト指向の塊のようなスーパーでお買い物をして・・・ですから。

理の世界はオブジェクト指向だ

えー?という人もいるでしょう。技術屋ほど、えー?でしょうね。考えて見ましょう。
あなた今日「おでん」を作って愛する人にたべさせなければならないとしましょう。どうします?
朝ならともかく、夕方に決めたことなら、あと数時間のうちに用意しなくてはなりません。でもね、たいていの人はあわてたりしませんね。なぜなら、スーパーにいけばたとえ料理が不得意でもなんとかなりますよね。え?コンビニで十分・・・だめ、りょうりしなくちゃ!
最も簡単な方法は、おでんセットなるものを買うことですね。具材を増やすことさえできますね。セットにはたいてい数人前の具材と、レシピ(料理の方法)が書いてありますね。量を増やすには何を用意すればいいかなどまで書いてあります。それにしたがって、スーパーなのでお買い物をすればなんとかなりますよね。
これ、セットやスーパーがなかったら・・・つまり、0から全部作らなければならないとしたら・・・?
え?ダッシュ村のTOKIOじゃないから無理って? ですね。すくなくとも夕飯におでんを出すのは無理そうです。なんの買い置きもなければね。

このことからわかる、スーパーやおでんセットの存在意味はなんですか?

そう、「時間の節約」「合理化」「均一の品質」です。それが毎日の主婦の料理にもたらされているのです。
おでんセットというのは、単なる1例にすぎず、このようなものがスーパーには豊富に用意されているのです。ところで「おでんセット」をもうすこし詳しく見ていくと。
具材+レシピの集まり という単位になっています。これはプログラミングの世界にもたらされた革命的なものの見方なのですが、主婦的には???ですね。あたりまえすぎて。それでいいのです。

プログラミングの言語に、コボルやFORTRANしかなかった数十年前にFORTRANの欠点を補うべく構造化という考え方が出現します。これを構造体というプログラミングの要素にまで洗練したのは後輩のC言語でした。C言語の構造体は、数値や文字列といったデーターを、型というものの枠に収める方法を提供したのでした。ルックチョコレートを想像してください。いろんな味のペーストをもったチョコが何個か集まって箱に入りそれがLookという単位になってますね。Lookチョコ3l個という表現は、箱が3箱と思いますね。なので箱単位=Lookチョコですねこれが構造体の考え方の基本です。すなわち、さまざまなデーターを集めてある箱に入れてそれ単位で扱う方法を提供したのです。
実はC言語を考えたエンジニアがすごかったのですが、Cにはポインタという考えも導入されていました。ポインタとはあるものの存在する場所を表す考え方で住所:アドレスや番地などとも言われます。コンピューターの中でアドレスといえば、メモリの中に格納されているさまざまな値のある場所のことです。

このポインタと、型をうまく組み合わせると、おそらく最初のオブジェクト指向を処理できたのです。最初のオブジェクト指向をまともに取り込んだ言語のC++などは最初のころ一度C言語に変換してそれをC言語でコンパイルしなおすという2パスコンパイラというもので実現しました。

さて、ここで・・・おでんの具材であるさまざまなデーターをパッケージにしているので、これはおでん型と考えられます。つまり構造化されています。このおでん型の中に、それらをどう調理するかというレシピ情報もあわせています。レシピはデーターをどのように加工するかというプログラムなのです。プログラムはコードともいいます。ここで1つの法則化をしてみます。

オブジェクト = 構造化されたデータ+コード です。 
おでん    = 具材 +調理法(レシピ)   といっしょですね。

このように、あるモノ(オブジェクト)をデーターとそれの加工方法(プログラム)とであらわす考え方がオブジェクト指向の基本になっています。

ところで、おでん型はどんなおでんかを特定していません。しょうゆおでん、味噌おでん・・・おでんには日本各地でさまざまな種類があるはずです。でもそれらすべては「おでん」というものに属していますね。なのでこれの意味は 味噌おでんはおでんというものを継承していると考えます。別な言い方をすると、おでんの基本的な作り方にちょっとした工夫で味噌おでんに変更できるということです。

このおでんとか味噌おでんとかいう分類の考え方をクラス化といいます。つまり属はクラスというわけです。味噌おでんクラスはおでんクラスを継承しています。おでんクラスは、すべての種類のおでんの親のような存在にあたるのです。クラスもひとつの型です。

雛形と考えると、おでん型を持った工場ではおでんをいくらでも製造できます。このとき、

おでんは、おでんクラスのオブジェクトであるといいます。型は製造装置のようなものです。

ドラえもんの型があるとき、工場ではドラえもんができます。あるときいもうとキャラへの変更を
したくなりました。そうするとドラえもん型を継承して少々変更を加えるとできました。
ドラミちゃん型。これでドラミちゃんも製造できることがわかりました。

明により、オブジェクト指向の
クラスと、オブジェクトがどのようなものか理解できたでしょうか。

プログラミングでは、このクラスを表現して、クラスのオブジェクトである変数を生成し
それが持つプログラムを呼び出して使うというのが流れになります。とりあえず、その概念と流れを理解しておけば、後は文法を覚えるだけです。
文法を覚えても、概念が理解できていないと、使い道がないのもわかってもらえるでしょうか。