メイン コーダーズルーム【スクリプト系】 ActionScript2.0におけるメソッド呼び出し時の型指定について | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
渡辺真太郎 | Åê¹ÆNo.2749 投稿日時: 2004-1-8 4:01 |
新米 居住地: 神奈川県相模原市 投稿: 20
使用環境:
MX2004 XP |
Re: ActionScript2.0におけるメソッド呼び出し時の型指定について 引用:
すいません、確かにおっしゃるとおりです。 自分でも普段interfaceで型宣言することありますね。(^^; さっきのソースは
ちょっと頭が回ってなかったみたいです。 失礼いたしました。 |
youich | Åê¹ÆNo.2748 投稿日時: 2004-1-8 3:19 |
職人 居住地: kobe 投稿: 349
使用環境:
Tiger |
Re: ActionScript2.0におけるメソッド呼び出し時の型指定について 引用:
いや、できるならということで、なんでもということではないです。(^^; しかし両方のinterfaceが必要として、もしやるとしたら、interfaceの継承とかでしょうか。 え、でも、interfaceで型宣言するってそんな変ですか? ちょと、心配になってwebを見て周りましたけど、そんなに、 奇怪なことではないと思うんですけど。。(^^; http://java-house.jp/ml/archive/j-h-b/026090.html#body http://java-house.jp/ml/archive/j-h-b/026167.html#body http://java-house.jp/ml/archive/j-h-b/026085.html#body すいません、人まかせにして
|
渡辺真太郎 | Åê¹ÆNo.2742 投稿日時: 2004-1-7 23:41 |
新米 居住地: 神奈川県相模原市 投稿: 20
使用環境:
MX2004 XP |
Re: ActionScript2.0におけるメソッド呼び出し時の型指定について 引用:
そ、そうなんですか(汗 その場合素朴な疑問がわいてくるのですが、複数インターフェイスを実装していた場合は、どうするのがよいのでしょうか? インスタンスを生成するときは、そのクラス型にして、 引数として渡すときにキャストするって感じになるんでしょうか? 便乗の質問ですいません。m(_ _)m |
youich | Åê¹ÆNo.2741 投稿日時: 2004-1-7 23:00 |
職人 居住地: kobe 投稿: 349
使用環境:
Tiger |
Re: ActionScript2.0におけるメソッド呼び出し時の型指定について 引用:
なぜかクラスの実装しているインターフェースをインスタンスの型にするのがいいと思い込んでたもので… いや、そうじゃないですか?できるならインターフェースの型を使って、 インターフェースに対してコーディングするほうがいいんじゃないかと、ぼくは思います。。。
|
nao | Åê¹ÆNo.2739 投稿日時: 2004-1-7 22:03 |
職人 居住地: 投稿: 208
使用環境:
WinXP Pro Flash8 Professional |
Re: ActionScript2.0におけるメソッド呼び出し時の型指定について shintaxさん
引用: var test2_obj:Test2 = new Test2();//型はTest2で良い。 そうですよね… なぜかクラスの実装しているインターフェースをインスタンスの型にするのがいいと思い込んでたもので… ありがとうございます.
|
渡辺真太郎 | Åê¹ÆNo.2737 投稿日時: 2004-1-7 21:56 |
新米 居住地: 神奈川県相模原市 投稿: 20
使用環境:
MX2004 XP |
Re: ActionScript2.0におけるメソッド呼び出し時の型指定について 引用:
インターフェイスはその名前の通り、あるオブジェクトを操作するためにメソッドの名前と、引数、戻り値を「約束事」として決めるために存在します。 Test2 とTest3 を別々の人が作成したと考えてみましょう。
Test3 class
引用:
Test3を作成した人は、Test1を実装したクラスが引数でくることを期待します。そのために、test2_fncという関数が実装されているかどうかは、本来は分からないはずです。 Test1では test1_fncのみが「約束事」としてきめられいるので、それ以外のメソッドtest2_fncを呼ぼうとしても、コンパイルエラーになります。
この様にTest3を作った人からみれば、Test1さえ実装していて、 test1_fnc()が存在することが保障されれば、実はどんなクラスであっても関係ないと言うのがインターフェイスの利点だとおもいます。 特に多重継承が行えない言語では、クラス間の結束をゆるくできるために、汎用性の高いクラスを作成することができます。 例) Test3 の test3_fncの引数型をTest2にした場合にはTest2または、そのサブクラスのインスタンスのみが引数として成立します。 さらに他の人がTest4というクラスをつくったときに、そのインスタンスはtest3_fncの引数になることはできなくなってしまいます。 |
nao | Åê¹ÆNo.2736 投稿日時: 2004-1-7 21:53 |
職人 居住地: 投稿: 208
使用環境:
WinXP Pro Flash8 Professional |
Re: ActionScript2.0におけるメソッド呼び出し時の型指定について 野中さん
引用: インタフェースについては、[インタフェースの作成と使用]をご参照ください。 こちらの方は以前読ませていただきました. ボクがちょっと理解しきれていなかったようです… - yoさん 引用: 2004の型について、あれれっと思ったことを以前ポストしたことがあります。 こちらのほうも後で読ませていただきます. ありがとうございました.
|
youich | Åê¹ÆNo.2735 投稿日時: 2004-1-7 21:45 |
職人 居住地: kobe 投稿: 349
使用環境:
Tiger |
Re: ActionScript2.0におけるメソッド呼び出し時の型指定について 引用:
野中さんのおっしゃるように、Test1にはtest2_fncが無いのでだめですね。 interfaceをimplementsするということは、そのinterfaceに定義されてる functionが実装されてることを保証するということなので、 Test1を引数の型としてとるならtest1_fncだけは確実に呼び出せるということですね。 なので、Test2を引数の型とするか、Test1にtest2_fncを追加するかでしょうか。 引用:
しかし、test2_objの実体はTest2なのでキャストすれば可能でしょう。
2004の型について、あれれっと思ったことを以前ポストしたことがあります。 http://hpcgi2.nifty.com/icutommy/fwiki_ja/wiki.cgi?instanceVariable%26classVariable
|
野中文雄 | Åê¹ÆNo.2732 投稿日時: 2004-1-7 20:50 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ActionScript2.0におけるメソッド呼び出し時の型指定について インタフェースについては、[インタフェースの作成と使用]をご参照ください。
引用: s-nさんは書きました: Test1 interface class
Test2 class implements Test1 interface
Test3 class
test.fla 1frame
クラスTest1には、test2_fnc()というメソッドが定義されていません。Test1を実装(implements)したサブクラスTest2で、型づけすべきでしょう。 引用: これを実行するとtest2_fncというメソッドがないと |
nao | Åê¹ÆNo.2727 投稿日時: 2004-1-7 19:59 |
職人 居住地: 投稿: 208
使用環境:
WinXP Pro Flash8 Professional |
ActionScript2.0におけるメソッド呼び出し時の型指定について s-nです.
本年度もよろしくお願いいたします. メソッドの引数の型指定について質問させてください. メソッドの引数のに型を指定しておくと書き出し時に チェックしてくれますがその型というのはどういった 指定をするのがいいのでしょうか? インターフェースの概念自体あまり触ったことがなく 分かってないかもしれません… 以下のようなサンプルを作ってみました. Test1 interface class
Test2 class implements Test1 interface
Test3 class
test.fla 1frame
これを実行するとtest2_fncというメソッドがないと 起こられます.… test3_fncの引数の方の指定をTest2とすると大丈夫なのですが test2_objはTest1の型にしているのでtest3_fncの引数の型も Test1でいいのかな?と思うのですが… 引数で型を指定したメソッド以外は呼べないのでしょうか? よろしくお願いします.
|
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |