[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends:00498] Re: Java プログラマーのための Perl 入門 ?
前橋です。
yasuyuki さんは書きました:
>私が主題にしていたのは Java ではなく、
>「クロージャーが存在する言語では"Javaのメソッドオーバーロード"相当の
>ことが動的なディスパッチで可能である」と言いたかったわけです。
クロージャーと何の関係が?
>「CLOSでは"Javaのメソッドオーバーロード"相当の
>ことが動的なディスパッチで可能である」と言いたかったわけです。
ということなら、その通りです。私が
>えんどうさんが
>Javaのメソッドオーバーロード程度のものを欲しがっているのなら、
>CLOSはその要件を満たしているでしょう。
と書いたのはまさにそういうことです。
>> Javaのメソッドオーバーロードの用途は、
>> 「メソッドの名前を色々考えなくてよくて嬉しいな」というものでしかなく、
>> 「型情報によるディスパッチ機構」ではありません。
>
>了解しました。
と、これで了解が取れてるんならそれでよさそうなもんですが。
>なぜ決定的にダメなのかが分かりません。もう少し実例を示していただけませんか?
本当に了解してますか?
まず、abstractクラスであるShapeを継承して、Point, Line, Curve, Arc
といったクラスが存在するとします。
んで、今ここに、
Shape[] shapes;
という配列があって、この中にPointやらLineやらCurveやらArcやらが
ごちゃごちゃに詰まっていて、「shapesの中身全部を描画したい」と
考えたとします。
>> | void draw(Point);
>> | void draw(Line);
>> | void draw(Curve);
>> | void draw(Arc);
>> |
>> | こういうのではだめですか。
だめでないと思うなら、「こういうの」で上記の問題をどう書くか、
是非教えてください。具体的なコードで。
------------------------------------------------------------
前橋 和弥 PXU00211@xxxxxxxxxxx
http://kmaebashi.com
------------------------------------------------------------