Macromedia Flash非公式テクニカルノート 1. オブジェクト指向プログラミングの基本原理
Platform: All 本節では、オブジェクト指向プログラム開発における原則について概要を述べます。これらの原則については、以降の本章で詳しく解説します。その中で、Macromedia Flash MX 2004およびMacromedia Flash Professional 2004で、それらがどのように実現されるのかも説明します。 1.1 オブジェクト 1.2 クラスとクラスメンバ 同じようにオブジェクト指向プログラミングでも、「クラス」はあるオブジェクトのタイプの設計図を定義します。そのクラスに備わる特徴や行動(behaviors)は、クラスの「メンバ」として参照されます。(猫の例での名前や歳、色といった)特徴は、クラスの「プロパティ」と呼ばれ、変数として表現されます。(食べる、眠るなどの)行動は、クラスの「メソッド」と呼ばれ、関数というかたちで表わされます。 たとえば、Personというクラスを作成したとします。そして、個別の人をそのクラスのインスタンスとして作成します。これをPersonオブジェクトと呼びます。Personオブジェクトは、Personクラスのすべてのプロパティやメソッドを保有することになります。 ActionScriptでは、'class'ステートメントでクラスを定義します(「3. クラスの作成と使用」参照)。ActionScriptには、MovieClipやTextField、Stringクラスといった数多くの定義済みクラスがあります。これらのクラスの使用について詳しくは、Using the Built-In Classesをご参照ください。 1.3 継承 たとえば、Mammal(ほ乳動物)クラスを作成して、すべてのほ乳類に共通する特定のプロパティやビヘイビアを定義することが考えられます。そして、Catクラスを作成して、Mammalクラスを拡張することができます。このように継承は、コードの再利用に役立ちます。2つのクラスに共通のコードすべてを毎回作成し直すのでなく、既存のクラスを拡張するだけでよいのです。また別のサブクラスが、今度はCatクラスを拡張できるという具合です。複雑なアプリケーションでは、クラスの階層をどのように構成するかの決定が、デザインプロセスの大きな部分を占めます。 ActionScriptでは、'extends'キーワードを使用して、クラスとスーパークラス間の継承を構築します。詳しくは、「3.4 サブクラスの作成」をご参照ください。 1.4 インタフェース インタフェースは、また「プログラミングの取決め(contract)」と考えることもできます。その取決めにより、関係のなかったクラス間に関連性を付与することが可能になります。たとえば、プログラマのチームと仕事をしているとましょう。各自は、同じアプリケーションの異なった部分(クラス)を担当しています。すると、アプリケーションをデザインする際に、異なるクラス同士がコミュニケーションするために使用すべきメソッド群を確認します。そこで、インタフェースを作成して、それらのメソッドやパラメータ、戻り値を宣言します。このインタフェースを実装するクラスは、すべてこれらのメソッドを定義しなければなりません。そうしないと、コンパイラはエラーを発生します。 またインターフェイスは、制限された「複数継承(multiple inheritance)」の形式を実装するために使用されることもあります。ActionScript 2.0では複数クラスの継承を許していません。複数継承では、ひとつのクラスが複数のクラスを継承します。たとえば、C++ではCatクラスが、Mammalクラスと同時にChaseTailやEatCatNipメソッドをもつPlayfulクラスを継承することができます。ActionScript 2.0では、Javaと同じく、ひとつのクラスが複数のクラスを直接継承することはできません。しかし、Playfulインターフェイスを作成して、ChaseTailやEatCatNipメソッドを宣言することは可能です。Catクラスあるいは他の任意のクラスで、このインタフェースを実装(implement)して、これらのメソッドを定義することができます。
詳しくは、「5.2 インタフェースの作成」をご参照ください。 出典 _____ 作成者: 野中文雄 Copyright © 2001-2003 Fumio Nonaka. All rights reserved. |
||||