[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Re: ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤¹¤ë¥Ç¡¼¥¿¥ª¥Ö¥¸¥§¥¯¥È¤Ë»ý¤Äµ¡Ç½(Re:CAD¤Î¥¯¥é¥¹¹½Â¤)
Á°¶¶¤Ç¤¹¡£
Shin¤µ¤ó:
>>¡¦Shape¤Î³Æ¥µ¥Ö¥¯¥é¥¹¤Î¥Ç¡¼¥¿¥á¥ó¥Ð¤Ï¡¢Á´Éôpublic¤Ë¤¹¤ë¤«¥¢
>> ¥¯¥»¥µ¤òÉÕ¤±¤ë¤«¤·¤Æ¡Ö¤Þ¤ë¸«¤¨¡×¤Ë¤·¤Ê¤¤ã¤¤¤±¤Ê¤¤¡£
>
>¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤¹¤ë¥Ç¡¼¥¿¤Ç¤¢¤ë¤«¤é¤Ë¤Ï¤½¤Î¥Ç¡¼¥¿¤ËÂФ¹¤ë(ľÀÜ
>/´ÖÀܤòÌä¤ï¤Ê¤¤)Áàºî(»²¾È)¤Ï¹Ô¤¨¤Ê¤¤¤È¤Þ¤º¤¤¤Ç¤¹¤Í.
>draw()¤ò»È¤ï¤Ê¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤â¤¢¤ë¤È¤¤¤¦ÏäʤΤǡ¢¤½¤¦¤¤¤¦¿Í
>¤Ë¤È¤Ã¤Æ¤Ïdraw()¤À¤±¤¬¸ø³«¤µ¤ì¤Æ¤¤¤Æ¤â²¿¤â¤Ç¤¤Ê¤¤¤³¤È¤Ë¤Ê¤ê¤Þ¤¹.
·ë¶É¤½¤¦¤Ê¤ê¤Þ¤¹¤è¤Í¡£¤Ç¡¢¤³¤Ã¤Á¤Ï¤·¤ç¤¦¤¬¤Ê¤¤¤«¤é¤¢¤¤é¤á¤ë
¤È¤·¤Æ¡¢
>>¡¦¤¤¤¶ÉÁ²è¤¹¤ë¤È¤¤Ë¤Ï¡¢Ä¹¡Á¤¤else if¤ÎÏ¢¤Ê¤ê¤Ç¡¢¤¤¤Á¤¤¤Á
>> instanceof¤Ç¥¯¥é¥¹¤òÄ´¤Ù¤ë¤Î?
>>
>>¤È¤¤¤¦¤³¤È¤Ë¤Ê¤Ã¤Á¤ã¤¤¤Þ¤¹¡£¤³¤ì¤Ï¤³¤ì¤ÇÈᤷ²á¤®¤Þ¤¹¡£ÆÃ¤Ë¤Õ¤¿¤Ä¤á¡£
>
>draw(Shape)¤È¤¤¤¦¥á¥½¥Ã¥É¤Î¼ÂÁõ¤¬°ì¤Ä¤·¤«¤Ê¤±¤ì¤Ð¤½¤¦¤Ê¤ê¤«¤Í¤Þ¤»
>¤ó¤Í.
¤³¤Á¤é¤Ï¤¢¤Þ¤ê¤Ë¤âÈᤷ²á¤®¤Þ¤¹¤Î¤Ç¡£
>>¡¦ShapeRunTime¤È¤¤¤¦abstract¥¯¥é¥¹¤òºî¤Ã¤Æ¡¢¤½¤Î¥¤¥ó¥¹¥¿¥ó¥¹
>> ¤òShape¥¤¥ó¥¹¥¿¥ó¥¹¤¬ÊÝ»ý¤¹¤ë¤è¤¦¤Ë¤¹¤ë¡£
>>¡¦ShapeRunTime¤ò·Ñ¾µ¤·¤Æ¡¢ShapeRunTimeForDrawer¤òºî¤ê¡¢
>> ¡Ödraw¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡×¤Ç¤Ï¡¢Shape¤Ë¤½¤¤¤Ä¤ò¤¯¤Ã¤Ä¤±
>> ¤Æ¤ª¤¯¡£Â¾¤Î¤³¤È¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¤½¤ì¤¾¤ì
>> ShapeRunTimeForXXXX¤òºî¤ë¡£
>>¡¦¡Ödraw¤¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡×¤Ï¡¢ShapeRunTime¤ò¥À¥¦¥ó¥¥ã¥¹
>> ¥È¤·¤Æ»È¤¦(¤³¤³¤¬Èþ¤·¤¯¤Ê¤¤)¡£
>>¡¦ShapeRunTimeForDrawer¤Ë¤Ï¡¢abstract¤Ê¥á¥½¥Ã¥É¤È¤·¤Æ¡¢
>> draw()¤òÆþ¤ì¤Æ¤ª¤¯¡£ShapeRunTimeForDrawer¤ò·Ñ¾µ¤·¤Æ
>> LineRunTimeForDrawer¤Ê¤É¤òºî¤ë¡£draw()¤Î¼ÂÁõ¤Ï¤½¤³¤Ë½ñ¤¯¡£
>
>¤³¤ì¤Ç¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë³ÊǼ¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤¬»ý¤Ã¤Æ¤¤¤ë
>ShapeRunTime¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤è¤Ã¤Æ¡¢³Æ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬»È¤¤¤¿¤¤
>µ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤¿¤ê»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¤ê¤·¤Þ¤¹.
># Shape¤Ë»ý¤¿¤»¤Æ¤·¤Þ¤Ã¤Æ¤Ï...
¤¢¤¢¤¢¤¢¤¢¡¢ÀâÌÀÉÔ¤Ǥ¹¤ß¤Þ¤»¤ó¡£¤½¤¦¤Ç¤Ï¤Ê¤¯¤Æ¡¢
ShapeRunTime¤Ï¡¢Java¤Î¥·¥ê¥¢¥é¥¤¥¶¤Ç¸À¤¦¤Ê¤é¡¢transient¤Ê
¥á¥ó¥Ð¤Î¤Ä¤â¤ê¤Ç¤·¤¿¡£
¤Ç¡¢Shape¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®(¤Þ¤¿¤Ï¥Ç¥·¥ê¥¢¥é¥¤¥º)¤¹¤ë¤È¤
¤Ë¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë±þ¤¸¤ÆÉ¬ÍפÊShapeRunTime¤òÀ¸À®¤·¤Æ¡¢¤½
¤³¤Ë¤¯¤Ã¤Ä¤±¤ë¤ï¤±¤Ç¤¹¡£
¤Ä¤¤¤Ç¤Ë¡¢ShapeRunTime¤Ï¡¢¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤Ï¤Ê¤¯¤Æ¥¯¥é¥¹¤Ç¤¹¡£
¼Â¹Ô»þ¤Î¤ß¤ËɬÍפʥǡ¼¥¿¥á¥ó¥Ð¤Î³ÊǼ¾ì½ê¤Ë¤â¤¹¤ë¤¿¤á¤Ç¤¹¡£
¤½¤Î¾ì¹ç¡¢ShapeRunTime¶¦Ä̤Υǡ¼¥¿¤â¤¢¤ë¤Ç¤·¤ç¤¦¤·¡¢DrawerÀì
ÍѤΤâ¤Î¤Ê¤é¡¢ShapeRunTimeForDrawer¤ËÆÍ¤Ã¹þ¤á¤Ð¤¤¤¤¤Î¤Ç¤¹¡£
>»ä¤Ï¡¢¤³¤¦¤¤¤¦¤Î¤òÍѰդ·¤Æ¡¢
>
>interface ShapeFunction {
> public void draw2D();
> public void draw3D();
> public void otherXXXX();//¤½¤Î¾¤ÎÈÆÍÑŪ¤½¤¦¤Êµ¡Ç½?
>}
...
>»È¤ï¤Ê¤¤¥á¥½¥Ã¥É¤¬ShapeFunction¤Î¼ÂÁõ¥¯¥é¥¹¤Ë¸ºß¤¹¤ë¤³¤È¤â¤¢¤ê¤Þ
>¤¹¤¬¤½¤ì¤ÏÌäÂê»ë¤¹¤ë¤³¤È¤â¤Ê¤¤¤È»×¤¤¤Þ¤¹.
¤¦¡¼¤ó¡¢ShapeFunction¤Ï¥·¥ê¥¢¥é¥¤¥ºÂоݳ°¤Ç¤¹¤«¤é¡¢¥Ç¡¼¥¿¥Ù¡¼
¥¹¤Ë³ÊǼ¤µ¤ì¤¿¥â¥Î¤Ë¤Ä¤¤¤Æ¤Ï¡¢±Æ¶Á¤òÍ¿¤¨¤Ê¤¯¤Æ¡¢¤½¤ì¤Ï¤½¤ì¤Ç
°ÕÌ£¤Î¤¢¤ë¤³¤È¤À¤È»×¤¦¤Î¤Ç¤¹¤±¤ì¤É¤â¡£
»È¤ï¤Ê¤¤¥á¥½¥Ã¥É¤¬ShapeFunction¤Ë¤¢¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢¤¢¤Ã¤Á¤Î
¥¢¥×¥ê¤ò²þ¤¤¹¤ë¤È¡¢¤³¤Ã¤Á¤Î¥¢¥×¥ê¤Ë¤â±Æ¶Á¤¬½Ð¤ë¤È¤¤¤¦¤³¤È¤Ë
¤Ê¤ê¤Þ¤»¤ó¤«? javac¤Î¾ì¹ç¥ê¥³¥ó¥Ñ¥¤¥ë¤¬Íפ뤫¤É¤¦¤«¤Ï¤è¤¯ÃÎ
¤ê¤Þ¤»¤ó¤±¤É¡£
·ë¶É¡¢¤³¤ì¤òÌäÂê»ë¤¹¤ë¤«¤·¤Ê¤¤¤«¤È¤¤¤¦ÌäÂê¤Ë¤Ê¤ê¤Þ¤¹¤«¤Í¡£
¤¿¤È¤¨¤Ð¡¢¥Ç¡¼¥¿¹½Â¤¤ò¥·¥ê¥¢¥é¥¤¥º¤·¤Æ¥Õ¥¡¥¤¥ë¤Ë³ÊǼ¤¹¤ë¾ì¹ç¡¢
¤½¤Î¥Ç¡¼¥¿¥Õ¥©¡¼¥Þ¥Ã¥È(¤Ä¤Þ¤ê¡¢Shape¤Î¹½Â¤)¤¬¸ø³«¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢
¤½¤ì¤òÍøÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¤¤¤í¤ó¤Ê²ñ¼Ò¤¬¶¥¹ç¤·¤Æ³«È¯
¤¹¤ë²ÄǽÀ¤â¤¢¤ê¤Þ¤¹¡£¤½¤¦¤¤¤¦¾ì¹ç¤Ï¡¢¥¢¥×¥êËè¤ÎÆÈΩÀ¤ò¤Ê¤Ë
¤¬¤Ê¤ó¤Ç¤â³ÎÊݤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Ç¤·¤ç¤¦¤·¡£
>Á°¶¶¤µ¤ó°Æ¤Ï¡¢
>interface ShapeRunTime {
>}
>interface ShapeRunForDraw2D extends ShapeRunTime {
> public void draw2D();
>}
>interface ShapeRunForDraw3D extends ShapeRunTime {
> public void draw3D();
>}
>interface ShapeRunForXXXX extends ShapeRunTime {
> public void XXXX();
>}
>¤Ç¡¢»È¤¦»þ¤ËShapeRunForDraw2D/3D/XXXXÅù¤Ë¥¥ã¥¹¥È¤¬É¬ÍפȤ¤¤¦¥Ñ¥¿
>¡¼¥ó¤Ç¤¹¤Í.
>Shape¤¬¾åµ¤Î¤É¤Îinterface¤ò¼ÂÁõ¤·¤¿¥¯¥é¥¹¤òÊÖ¤¹¤«¤¬(ÍøÍѼԤË)¤ï
>¤«¤é¤Ê¤¤¤Î¤¬ÌäÂ꤫¤Ê¤¢.¤Ã¤Æ»ö¤¬¤¤¤¤¤¿¤«¤Ã¤¿¤Î¤Ç¤¹.
ShapeRunTimeForXXX¤ÏÍøÍѼÔËè¤ËʬÎष¤Æ¤¢¤ë¤ï¤±¤Ç¤¹¤«¤é¡¢¤¢¤ë
ÍøÍѼԤËɬÍפÊShapeRunTime¤Ï°ì¼ïÎà¤Î·è¤áÂǤÁ¤Ç¤¤¤¤¤ï¤±¤Ç...
------------------------------------------------------------
Á°¶¶ ÏÂÌï maebashi@xxxxxxxxxx
ÃæÉô¥½¥Õ¥È¥¨¥ó¥¸¥Ë¥¢¥ê¥ó¥°(³ô)
¢©450 ̾¸Å²°»ÔÃæÂ¼¶è̾±Ø4-10-25(̾±ØIMAI¥Ó¥ë 5F)
Tel:(052)583-4511(Âå) ÆâÀþ 252 Fax:(052)583-4566
------------------------------------------------------------