[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Re: [jfriends] ÊÖÃͤòËè²ónew¤·¤ÆÊÖ¤¹¤«¡¢»È ¤¤¤Þ¤ï¤¹¤«
¹â¶¶¡ÊŰ¡Ë¤Ç¤¹¡£
>ÊÖÃͤ˻Ȥ¦¥¤¥ó¥¹¥¿¥ó¥¹¤ò»È¤¤¤Þ¤ï¤¹¤È¡¢¤½¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤ÎÆâÍÆ¤ò
>¡Ê¼õ¤±¼è¤Ã¤¿Â¦¡¢ÊÝ»ý¤·¤Æ¤¤¤ë¦¤Ç¡ËÊѹ¹¤·¤ÆÎɤ¤¤«¤É¤¦¤«¤¬¡¢
>ÌäÂê¤È¤Ê¤ê¤Þ¤¹¡£
>AWT¤¬ÊÖ¤¹Dimension¤Î°·¤¤¤ÇǺ¤ó¤À¤Î¤Ï¤½¤ÎȽÃǤǤ·¤¿¡£
>
>java.lang.String¤Î¤è¤¦¤Ë¡¢¥¤¥ó¥¹¥¿¥ó¥¹¤¬Êѹ¹ÉÔ²Äǽ¤Ê¤â¤Î¤Ï
>»È¤¤¤Þ¤ï¤·¤Æ¤âÁ´¤¯ÌäÂê̵¤¤¤Î¤Ç¤¹¤¬¡£
Java Report»ï1999.4¤Ë¡¢"Immutables"¤È¤¤¤¦µ»ö¤¬¤¢¤ê¤Þ¤¹¡£
ÆâÍÆ¤Ï¡¢¥¤¥ß¥å¡¼¥¿¥Ö¥ë¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ߷פˤĤ¤¤Æ¤Ç¤¹¡£
ʸ»ú¤É¤ª¤ê¡¢¤¤¤Ã¤¿¤óÀ¸À®¤µ¤ì¤¿¸å¤ÏÊѹ¹ÉÔ²Äǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Î
¤³¤È¤Ç¤¹¡£¥¤¥ß¥å¡¼¥¿¥Ö¥ë¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤ÎÎã¤Ëjava.lang.String
¤¬¤¢¤ê¤Þ¤¹¡£Ìá¤êÃͤ˻Ȥäơ¢¤¢¤Á¤³¤Á¤Ç»È¤¤¤Þ¤ï¤¹¾ì¹ç¤Ï¡¢
¥¤¥ß¥å¡¼¥¿¥Ö¥ë¤È¤·¤ÆÀ߷פ¹¤ë¤È¤è¤¤¤Ç¤·¤ç¤¦¡£¥¤¥ß¥å¡¼¥¿¥Ö¥ë¤Ê
¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤³¤Î¤Û¤«¡¢¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ç¤â¤¢¤ê¤Þ¤¹¡£
¤¿¤À¤·¡¢ÃͤòÊѹ¹¤¹¤ë¤Ë¤Ï¡¢¤½¤ÎÅÔÅÙ¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë¤³¤È
¤Ë¤Ê¤ê¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬°¤¯¤Ê¤ê¤Þ¤¹¡£
¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¤¥ß¥å¡¼¥¿¥Ö¥ë¤Ë¤¹¤ë¤Ë¤Ï¡¢¥Õ¥£¡¼¥ë¥É¤ËÃͤòÀßÄê
¤¹¤ë¥á¥½¥Ã¥É¡Êsetter¡Ë¤ò»ý¤¿¤Ê¤¤¤³¤È¡¢Á´¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤ò
privateÀë¸À¤¹¤ë¤³¤È¡¢¤Ç¤¹¡£¤¿¤À¤·¡¢¥Õ¥£¡¼¥ë¥É¤¬¥¤¥ß¥å¡¼¥¿¥Ö¥ë
¤Ç¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤À¤È¡¢getter¤Ç¼èÆÀ¤·¤¿¸å¤ËÊѹ¹¤µ¤ì¤Æ¤·¤Þ¤¤
¤Þ¤¹¡£¤½¤Î¤È¤¤Ï¡¢getter¤Ç¥Õ¥£¡¼¥ë¥É¤òÅϤ¹¤È¤¤Ëclone()¤·¤¿
¥ª¥Ö¥¸¥§¥¯¥È¤òÅϤ¹¤³¤È¤Ç²óÈò¤Ç¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
¤Þ¤¿¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ò½ÅÍ׻뤹¤ë¤È¤¤Ë¡¢¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤ò
Èò¤±¤ë¥¤¥Ç¥£¥ª¥à"Pass-in, Pass-out"¤È¤¤¤¦Ïä·¤âƱµ»ö¤ËºÜ¤Ã¤Æ
¤¤¤Þ¤¹¡£¥á¥½¥Ã¥É¤ò¸Æ¤Ö¦¤¬¥ª¥Ö¥¸¥§¥¯¥È¤òÊÝ»ý¤·¡¢¥á¥½¥Ã¥É¤Î
°ú¤¿ô¤È¤·¤ÆÅϤ·¡¢¥á¥½¥Ã¥ÉÆâ¤Ç¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ËÃͤòÀßÄꤷ
Ìá¤êÃͤȤ·¤ÆÊÖ¤·¤Þ¤¹¡£
Îã¤È¤·¤Æ¾Ò²ð¤µ¤ì¤Æ¤¤¤¿¥³¡¼¥É¤Ï¡¢Dimension¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤¹
getSize()¥á¥½¥Ã¥É¤Ç¡¢
(1)¥¤¥Ç¥£¥ª¥à¤ò»È¤ï¤Ê¤¤¾ì¹ç¡¢
public Dimension getSize() {
return new Dimension(width, height);
}
(2)Pass-in¤Î¾ì¹ç
public void getSize(Dimension output) {
output.width = width;
output.height = height;
}
(3)Pass-in, Pass-out¡¡
public Dimension getSize(Dimension output) {
output.width = width;
output.height = height;
return output;
}
(1)¤Î¾ì¹ç¡¢getSize¤¹¤ë¤¿¤Ó¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¤¬È¯À¸¤·¤Þ¤¹¡£
(2)¤Î¾ì¹ç¡¢¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢button.getSize().width
¤È¤¤¤Ã¤¿»È¤¤¤Þ¤ï¤·¤¬¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï(3)¤Î¤è¤¦¤ËÀ߷פ·¤Þ¤¹¡£
(3)¤Î¥¤¥Ç¥£¥ª¥à¤ò»È¤Ã¤¿¾ì¹ç¤Ë¡¢¼¡¤Î¥á¥½¥Ã¥É¤âÍѰդ·¤Æ¤ª¤¯¤ÈÊØÍø¤Ç¤¹¡£
public final Dimension getSize() {
return getSize( new Dimension() );
}
¸Æ¤Ó¼ê¤¬ºÇ½é¤ËDimension¥ª¥Ö¥¸¥§¥¯¥È¤òɬÍפȤ¹¤ë¤È¤¤Ë¤³¤Î¥á¥½¥Ã¥É¤ò
»È¤¤¡¢°Ê¹ß¤Ï(3)¤Î¥á¥½¥Ã¥É¤òÍøÍѤ·¤Þ¤¹¡£µ»ö¤Ë¤è¤ì¤Ð¡¢final¤ò¤Ä¤±¤ë
¤³¤È¤Ç¥³¥ó¥Ñ¥¤¥é¤¬¥¤¥ó¥é¥¤¥óŸ³«¤·¤Æ¤¯¤ì¤ë¤³¤È¤¬´üÂԤǤ¤ë¤È¤¢¤ê¤Þ¤¹
¤¬¡¢¤½¤³¤Þ¤ÇɬÍפ«¤Ï¡©¤Ç¤¹¡£
------
Toru Takahashi
torutk@xxxxxxxxxx
NIFTY: GHE00470
http://www.alles.or.jp/~torutk/