チュートリアル-1 : Intro [Edit]

「オブジェクト指向プログラミング(Object-Oriented Programming、以下OOP)ってよく耳にはするけど、一体何?」という疑問をお持ちの方は少なくないと思います。ひとことで表すなら、「OOPとはクラスの概念を用いたプログラミング」と言って良いと思います。
ここでは基本的に、Flashの言語であるActionScript(以下AS)に限って話を進めますが、そこで、「え、クラス?それも聞いたことはあるけどAS辞書には何の説明もないし、それって一体何?」という疑問が次に出てきます(出てこない方も話の成り行き上おつきあい下さい)。

クラスに関する詳しい説明は後ほどになりますが、例えば私たちが過去に少なくとも一度は書いたことがあるコード:

例1
myDate = new Date();

この中でも既にクラスは使われています。(過去に一度も書いたことないという方は是非一度お試しを)
ビルトインクラスのDateがここで使われているわけですが、このコードが意味するのは、myDateという名の、Dateクラスのインスタンスを定義ということです。そしてこれによってこの後、myDateがDateクラスの様々なメソッド、例えばgetSecondsやsetTime等を使えるようになります。このように、Flash 5で登場したASは、それ自体、ある意味OOPに則した仕様になっていますが、このチュートリアルでやろうとしているOO-ActionScriptingでは、そういったビルトインのクラスだけでなく、私たち自身が目的に応じてクラスを独自に定義しそのクラスに汎用のメソッドやプロパティを持たせ、そこから様々に展開していくことになります。

ただFlashというアプリケーション自体、そういったOOP的な部分をできる限りユーザが意識することなくコンテンツを制作できるインターフェースというものを目指しているとも言えるわけで、そのFlashで敢えてOOPを用いることに果たして意味はあるのかという議論が出てきます。答えは「制作するコンテンツによる」ということになります。AS自体をそれほど頻繁には使わないシンプルな構成のコンテンツでOOPを意識してコーディングすることは、はっきり言って時間の無駄以外のなにものでもありません。OOPが意味を持つのは、ある程度組織だった構成が求められる大きなコンテンツを制作する場合や、カプセル化されたひとまとまりのコードを他のコンテンツでも再利用したい場合等ということになります。実際、Flash MXでは、Flash 5と異なり、ASのOOP的な部分がかなりユーザに開放され、OOP的アプローチも取りやすくなっています。又、MXの機能を有効に使うにはOOPの理解が必要とも言えます。具体例を挙げるなら、MXで登場したコンポーネントは、正にそれ自体がカプセル化されたひとまとまりのコードであり、又、既存のコンポーネントを使うだけなら特にOOPを強く意識する必要は無いものの、独自のコンポーネントを作るといった場合にはOOPの理解が必須になります。又、コンポーネントはOOP的アプローチを具現化した一つの形ですが、コンポーネント以外でももちろんOOPはその威力を発揮します。

とりあえず、そんなことをなんとなく頭に置きつつ、まずはオブジェクトとは何かといったあたりから見ていくことにしましょう。

続けて、チュートリアル-2 : object をご覧ください。

その他の記事