昨日は誰かが作ったクラスを読み込んだが、それでも他の人が作ったクラスは、その人の目的があり自分(私)の目的に完全に合致すればいいのだが、そうは世の中うまくいかない。
そんな場合、自分自身でクラスを作る必要がある。
この自分で作るクラスのことを「カスタムクラス」と呼ぶそうだ。
そのカスタムクラスの説明は次回以降に後回しにして、今回はクラスを扱う際に必要な考え方、オブジェクトについて考えてみた。
オブジェクトって
カスタムクラスを作るには「オブジェクト」というものを少し理解しなければならないらしい。
オブジェクトというのは変数(プロパティ)とメソッドを持ったものをいう。
オブジェクトを簡単に言うとモノや物体と言い表せる。
変数とはプロパティ、そのオブジェクト:モノが持っている数値やパラメータのこと。
メソッドとは、そのオブジェクト:モノを操作するためのもの。
ぼんやりとイメージできた・・・はず。
結局オブジェクトってなに?
私は頭の弱い子なので、オブジェクトはわかったけど、結局オブジェクトとactionscriptとの関係は?クラスとの関係は?という疑問がでてくる。
結局のところ、このオブジェクトというのがカスタムクラスと結びつくらしい。
上図例の人間を苦労してActionscriptで作ったとする。
上図のプログラムは「男性」をあらわしているが、たとえば「女性」を作りたい場合、まるっきりコピーして、修正するのでは時間がかかる。
というのもメソッド(操作)「寝る、だらける、食う」自体は男と同じなのに、「もう一度これをコピペするんかい!」ってことになる。
仮に「だらける」操作に男女共通の「ビールを飲みながらだらける」に修正したいといった場合、「両方のプログラム修正するんかい!」ということになる。
これが、男性と女性の2パターンだったらまだ楽だけど、老人、主婦、若者、団塊・・・と増えていった場合そのすべてに修正を加えるのは容易ではない。
そこで、人間オブジェクトという雛形を作っておいて、必要な変数:パラメータを渡せば、さまざまなタイプの人間を生成できるようになれば楽かと。
さらに雛形となった人間オブジェクトを修正することによって、「人間」の動作を修正できるようにできればもっともっと楽になる。
これが、カスタムクラスの基本で、これをオブジェクト指向のプログラムと呼ぶ・・・らしい。
そして、この「人間オブジェクト」から「男オブジェクト」と「女オブジェクト」を作り出すことを、「インスタンスを作る」という。
この人間から男と女オブジェクトを作るには、asでは次のようなコードを書く。
[as3]
男 = new 人間("31","男");
女 = new 人間("24","女");
男.寝る();
女.食う();
[/as3]
上記プログラムを実行すると、男31歳と女24歳を作り、男は寝て、女は食うという動作を行うw
ちなみにこの例はあくまでも例なので。
日本語使っているが、実際は使えない・・・と思うよ。
今日はここまで。
自分なりの解釈なので間違ってたらゴメンナサイ。
ご指摘いただけると勉強になるっす!