トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     ActionScript2.0におけるメソッド呼び出し時の型指定について
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
shintax
Åê¹ÆNo.2737
投稿日時: 2004-1-7 21:56
新米
居住地: 神奈川県相模原市
投稿: 20
使用環境:
Re: ActionScript2.0におけるメソッド呼び出し時の型指定について
引用:

s-n1211さんは書きました:

インターフェースの概念自体あまり触ったことがなく
分かってないかもしれません…


インターフェイスはその名前の通り、あるオブジェクトを操作するためにメソッドの名前と、引数、戻り値を「約束事」として決めるために存在します。
Test2 とTest3 を別々の人が作成したと考えてみましょう。
interface Test1 {
	function test1_fnc():Void;
}


Test3 class
class Test3 {
	function test3_fnc(param_obj:Test1) {
		param_obj.test1_fnc();
		//Test1を実装したクラスがtest2_fncを実装しているかは保障がない。
		//param_obj.test2_fnc();
	}
}

引用:

これを実行するとtest2_fncというメソッドがないと
起こられます.…

Test3を作成した人は、Test1を実装したクラスが引数でくることを期待します。そのために、test2_fncという関数が実装されているかどうかは、本来は分からないはずです。
Test1では test1_fncのみが「約束事」としてきめられいるので、それ以外のメソッドtest2_fncを呼ぼうとしても、コンパイルエラーになります。
import Test1;
import Test2;
import Test3;

//var test2_obj:Test1 = new Test2();
var test2_obj:Test2 = new Test2();//型はTest2で良い。
var test3_obj = new Test3();
//test3_fncの引数の型はTest1だがTest2はTest1を実装してるのでコンパイルエラーにならない。
test3_obj.test3_fnc(test2_obj);


この様にTest3を作った人からみれば、Test1さえ実装していて、
test1_fnc()が存在することが保障されれば、実はどんなクラスであっても関係ないと言うのがインターフェイスの利点だとおもいます。
特に多重継承が行えない言語では、クラス間の結束をゆるくできるために、汎用性の高いクラスを作成することができます。

例)
Test3 の test3_fncの引数型をTest2にした場合にはTest2または、そのサブクラスのインスタンスのみが引数として成立します。
さらに他の人がTest4というクラスをつくったときに、そのインスタンスはtest3_fncの引数になることはできなくなってしまいます。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   ActionScript2.0におけるメソッド呼び出し時の型指定について s-n1211 2004-1-7 19:59
     Re: ActionScript2.0におけるメソッド呼び出し時の型指定について Fumio 2004-1-7 20:50
     Re: ActionScript2.0におけるメソッド呼び出し時の型指定について youich 2004-1-7 21:45
       Re: ActionScript2.0におけるメソッド呼び出し時の型指定について s-n1211 2004-1-7 21:53
   » Re: ActionScript2.0におけるメソッド呼び出し時の型指定について shintax 2004-1-7 21:56
       Re: ActionScript2.0におけるメソッド呼び出し時の型指定について s-n1211 2004-1-7 22:03
         Re: ActionScript2.0におけるメソッド呼び出し時の型指定について youich 2004-1-7 23:00
           Re: ActionScript2.0におけるメソッド呼び出し時の型指定について shintax 2004-1-7 23:41
             Re: ActionScript2.0におけるメソッド呼び出し時の型指定について youich 2004-1-8 3:19
               Re: ActionScript2.0におけるメソッド呼び出し時の型指定について shintax 2004-1-8 4:01

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops