°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
12¡£2¡£2¡¡¿Ë¡¶ÔÏó¡¡¡¡
ÈôÐèÐÞ¸ÄÒ»¸ö¶ÔÏó£¬Í¬Ê±²»Ïë¸Ä±äµ÷ÓÃÕߵĶÔÏ󣬾ÍÒªÖÆ×÷¸Ã¶ÔÏóµÄÒ»¸ö±¾µØ¸±±¾¡£ÕâÒ²ÊDZ¾µØ¸±±¾×î³£¼û¡¡
µÄÒ»ÖÖÓÃ;¡£Èô¾ö¶¨ÖÆ×÷Ò»¸ö±¾µØ¸±±¾£¬Ö»Ðè¼òµ¥µØʹÓá¡clone£¨£©·½·¨¼´¿É¡£Clone¡¡ÊÇ¡°¿Ë¡¡±µÄÒâ˼£¬¼´ÖÆ¡¡
×÷ÍêȫһģһÑùµÄ¸±±¾¡£Õâ¸ö·½·¨ÔÚ»ù´¡ÀàObject¡¡Öж¨Òå³É¡°protected¡±£¨Êܱ£»¤£©Ä£Ê½¡£µ«ÔÚÏ£Íû¿Ë¡¡¡
µÄÈκÎÑÜÉúÀàÖУ¬±ØÐ뽫Æ串¸ÇΪ¡°public¡±Ä£Ê½¡£ÀýÈ磬±ê×¼¿âÀàVector¡¡¸²¸ÇÁË¡¡clone£¨£©£¬ËùÒÔÄÜΪ¡¡
Vector¡¡µ÷ÓÃclone£¨£©£¬ÈçÏÂËùʾ£º¡¡¡¡
¡¡¡¡
//£º¡¡Cloning¡£java¡¡¡¡
//¡¡The¡¡clone£¨£©¡¡operation¡¡works¡¡for¡¡only¡¡a¡¡few¡¡¡¡
//¡¡items¡¡in¡¡the¡¡standard¡¡Java¡¡library¡£¡¡¡¡
import¡¡java¡£util¡£*£»¡¡¡¡
¡¡¡¡
class¡¡Int¡¡£û¡¡¡¡
¡¡¡¡private¡¡int¡¡i£»¡¡¡¡
¡¡¡¡public¡¡Int£¨int¡¡ii£©¡¡£û¡¡i¡¡=¡¡ii£»¡¡£ý¡¡¡¡
¡¡¡¡public¡¡void¡¡increment£¨£©¡¡£û¡¡i£«£«£»¡¡£ý¡¡¡¡
¡¡¡¡public¡¡String¡¡toString£¨£©¡¡£û¡¡¡¡¡¡
¡¡¡¡¡¡¡¡return¡¡Integer¡£toString£¨i£©£»¡¡¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
public¡¡class¡¡Cloning¡¡£û¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡Vector¡¡v¡¡=¡¡new¡¡Vector£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡10£»¡¡i£«£«¡¡£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡v¡£addElement£¨new¡¡Int£¨i£©£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨v£º¡¡¡¨¡¡£«¡¡v£©£»¡¡¡¡
¡¡¡¡¡¡¡¡Vector¡¡v2¡¡=¡¡£¨Vector£©v¡£clone£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Increment¡¡all¡¡v2's¡¡elements£º¡¡¡¡
¡¡¡¡¡¡¡¡for£¨Enumeration¡¡e¡¡=¡¡v2¡£elements£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡e¡£hasMoreElements£¨£©£»¡¡£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£¨£¨Int£©e¡£nextElement£¨£©£©¡£increment£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡See¡¡if¡¡it¡¡changed¡¡v's¡¡elements£º¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨v£º¡¡¡¨¡¡£«¡¡v£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
clone£¨£©·½·¨²úÉúÁËÒ»¸öObject£¬ºóÕß±ØÐëÁ¢¼´ÖØÐÂÔìÐÍΪÕýÈ·ÀàÐÍ¡£Õâ¸öÀý×ÓÖ¸³öVector¡¡µÄ¡¡clone£¨£©·½·¨¡¡
²»ÄÜ×Ô¶¯³¢ÊÔ¿Ë¡Vector¡¡ÄÚ°üº¬µÄÿ¸ö¶ÔÏ󡪡ªÓÉÓÚ±ðÃûÎÊÌ⣬ÀϵÄVector¡¡ºÍ¿Ë¡µÄVector¡¡¶¼°üº¬ÁËÏàͬ¡¡
µÄ¶ÔÏó¡£ÎÒÃÇͨ³£°ÑÕâÖÖÇé¿ö½Ð×÷¡°¼òµ¥¸´ÖÆ¡±»òÕß¡°Ç³²ã¸´ÖÆ¡±£¬ÒòΪËüÖ»¸´ÖÆÁËÒ»¸ö¶ÔÏóµÄ¡°±íÃ桱²¿¡¡
·Ö¡£Êµ¼Ê¶ÔÏó³ý°üº¬Õâ¸ö¡°±íÃ桱ÒÔÍ⣬»¹°üÀ¨¾ä±úÖ¸ÏòµÄËùÓжÔÏó£¬ÒÔ¼°ÄÇЩ¶ÔÏóÓÖÖ¸ÏòµÄÆäËûËùÓжԡ¡
Ïó£¬ÓÉ´ËÀàÍÆ¡£Õâ±ãÊÇ¡°¶ÔÏóÍø¡±»ò¡°¶ÔÏó¹ØϵÍø¡±µÄÓÉÀ´¡£ÈôÄܸ´ÖÆÏÂËùÓÐÕâÕÅÍø£¬±ã½Ð×÷¡°È«Ã渴ÖÆ¡±¡¡
»òÕß¡°Éî²ã¸´ÖÆ¡±¡£¡¡¡¡
ÔÚÊä³öÖпɿ´µ½Ç³²ã¸´ÖƵĽá¹û£¬×¢Òâ¶Ô¡¡v2¡¡²ÉÈ¡µÄÐж¯Ò²»áÓ°Ïìµ½¡¡v£º¡¡¡¡
¡¡¡¡
v£º¡¡£§0£»¡¡1£»¡¡2£»¡¡3£»¡¡4£»¡¡5£»¡¡6£»¡¡7£»¡¡8£»¡¡9£§¡¡¡¡
v£º¡¡£§1£»¡¡2£»¡¡3£»¡¡4£»¡¡5£»¡¡6£»¡¡7£»¡¡8£»¡¡9£»¡¡10£§¡¡¡¡
¡¡¡¡
Ò»°ãÀ´Ëµ£¬ÓÉÓÚ²»¸Ò±£Ö¤Vector¡¡Àï°üº¬µÄ¶ÔÏóÊÇ¡°¿ÉÒÔ¿Ë¡¡±£¨×¢ÊÍ¢Ú£©µÄ£¬ËùÒÔ×îºÃ²»ÒªÊÔͼ¿Ë¡ÄÇЩ¶Ô¡¡
Ï󡣡¡¡¡
¡¡¡¡
¢Ú£º¡°¿ÉÒÔ¿Ë¡¡±ÓÃÓ¢Óï½²ÊÇ¡¡cloneable£¬ÇëÁôÒâJava¡¡¿âÖÐרÃű£ÁôÁËÕâÑùµÄÒ»¸ö¹Ø¼ü×Ö¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡352¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡354¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
12¡£2¡£3¡¡Ê¹Àà¾ßÓпË¡ÄÜÁ¦¡¡¡¡
¾¡¹Ü¿Ë¡·½·¨ÊÇÔÚËùÓÐÀà×î»ù±¾µÄ¡¡Object¡¡Öж¨ÒåµÄ£¬µ«¿Ë¡ÈÔÈ»²»»áÔÚÿ¸öÀàÀï×Ô¶¯½øÐС£ÕâËƺõÓÐЩ²»¿É¡¡
˼Ò飬ÒòΪ»ù´¡Àà·½·¨ÔÚÑÜÉúÀàÀïÊǿ϶¨ÄÜÓõġ£µ«Java¡¡È·ÊµÓеã¶ù·´ÆäµÀ¶øÐÐÖ®£»Èç¹ûÏëÔÚÒ»¸öÀàÀïʹÓá¡
¿Ë¡·½·¨£¬Î¨Ò»µÄ°ì·¨¾ÍÊÇרÃÅÌí¼ÓһЩ´úÂ룬ÒԱ㱣֤¿Ë¡µÄÕý³£½øÐС£¡¡¡¡
¡¡¡¡
1¡£¡¡Ê¹ÓÃprotected¡¡Ê±µÄ¼¼ÇÉ¡¡¡¡
Ϊ±ÜÃâÎÒÃÇ´´½¨µÄÿ¸öÀ඼ĬÈϾßÓпË¡ÄÜÁ¦£¬clone£¨£©·½·¨ÔÚ»ù´¡ÀàObject¡¡ÀïµÃµ½ÁË¡°±£Áô¡±£¨ÉèΪ¡¡
protected£©¡£ÕâÑùÔì³ÉµÄºó¹û¾ÍÊÇ£º¶ÔÄÇЩ¼òµ¥µØʹÓÃÒ»ÏÂÕâ¸öÀàµÄ¿Í»§³ÌÐòÔ±À´Ëµ£¬ËûÃDz»»áĬÈϵØÓµÓС¡
Õâ¸ö·½·¨£»Æä´Î£¬ÎÒÃDz»ÄÜÀûÓÃÖ¸Ïò»ù´¡ÀàµÄÒ»¸ö¾ä±úÀ´µ÷Óá¡clone£¨£©¡¡£¨¾¡¹ÜÄÇÑù×öÔÚijЩÇé¿öÏÂÌرðÓС¡
Ó㬱ÈÈçÓöàÐÎÐԵķ½Ê½¿Ë¡һϵÁжÔÏ󣩡£ÔÚ±àÒëÆÚµÄʱºò£¬Õâʵ¼ÊÊÇ֪ͨÎÒÃǶÔÏ󲻿ɿË¡µÄÒ»ÖÖ·½¡¡
ʽ¡ª¡ª¶øÇÒ×îÆæ¹ÖµÄÊÇ£¬Java¡¡¿âÖеĴó¶àÊýÀ඼²»ÄÜ¿Ë¡¡£Òò´Ë£¬¼ÙÈçÎÒÃÇÖ´ÐÐÏÂÊö´úÂ룺¡¡¡¡
Integer¡¡x¡¡=¡¡new¡¡Integer£¨l£©£»¡¡¡¡
x¡¡=¡¡x¡£clone£¨£©£»¡¡¡¡
ÄÇôÔÚ±àÒëÆÚ£¬¾ÍÓÐÒ»ÌõÌÖÑáµÄ´íÎóÏûÏ¢µ¯³ö£¬¸æËßÎÒÃDz»¿É·ÃÎÊclone£¨£©¡ª¡ªÒòΪInteger²¢Ã»Óи²¸Ç¡¡
Ëü£¬¶øÇÒËü¶Ôprotected¡¡°æ±¾À´ËµÊÇĬÈϵģ©¡£¡¡¡¡
µ«ÊÇ£¬¼ÙÈôÎÒÃÇÊÇÔÚÒ»¸ö´ÓObject¡¡ÑÜÉú³öÀ´µÄÀàÖУ¨ËùÓÐÀ඼ÊÇ´Ó¡¡Object¡¡ÑÜÉúµÄ£©£¬¾ÍÓÐȨµ÷Óá¡
Object¡£clone£¨£©£¬ÒòΪËüÊÇ¡°protected¡¡¡±£¬¶øÇÒÎÒÃÇÔÚÒ»¸ö¼Ì³ÐÆ÷ÖС£»ù´¡Ààclone£¨£©ÌṩÁËÒ»¸öÓÐÓõŦ¡¡
ÄÜ¡ª¡ªËü½øÐеÄÊǶÔÑÜÉúÀà¶ÔÏóµÄÕæÕý¡°°´Î»¡±¸´ÖÆ£¬ËùÒÔÏ൱ÓÚ±ê×¼µÄ¿Ë¡Ðж¯¡£È»¶ø£¬ÎÒÃÇËæºóÐèÒª½«¡¡
×Ô¼ºµÄ¿Ë¡²Ù×÷ÉèΪpublic£¬·ñÔòÎÞ·¨·ÃÎÊ¡£×ÜÖ®£¬¿Ë¡ʱҪעÒâµÄÁ½¸ö¹Ø¼üÎÊÌâÊÇ£º¼¸ºõ¿Ï¶¨Òªµ÷Óá¡
super¡£clone£¨£©£¬ÒÔ¼°×¢Ò⽫¿Ë¡ÉèΪ¡¡public¡£¡¡¡¡
ÓÐʱ»¹ÏëÔÚ¸üÉî²ãµÄÑÜÉúÀàÖи²¸Ç¡¡clone£¨£©£¬·ñÔò¾ÍÖ±½ÓʹÓÃÎÒÃǵÄclone£¨£©¡¡£¨ÏÖÔÚÒѳÉΪpublic£©£¬¶øÄÇ¡¡
²¢²»Ò»¶¨ÊÇÎÒÃÇËùÏ£ÍûµÄ£¨È»¶ø£¬ÓÉÓÚObject¡£clone£¨£©ÒÑÖÆ×÷ÁËʵ¼Ê¶ÔÏóµÄÒ»¸ö¸±±¾£¬ËùÒÔÒ²ÓпÉÄÜÔÊÐíÕâ¡¡
ÖÖÇé¿ö£©¡£protected¡¡µÄ¼¼ÇÉÔÚÕâÀïÖ»ÄÜÓÃÒ»´Î£ºÊ״δÓÒ»¸ö²»¾ß±¸¿Ë¡ÄÜÁ¦µÄÀà¼Ì³Ð£¬¶øÇÒÏëʹһ¸öÀà±ä¡¡
³É¡°Äܹ»¿Ë¡¡±¡£¶øÔÚ´ÓÎÒÃǵÄÀà¼Ì³ÐµÄÈκγ¡ºÏ£¬clone£¨£©·½·¨¶¼ÊÇ¿ÉÒÔʹÓõģ¬ÒòΪJava¡¡²»¿ÉÄÜÔÚÑÜÉú¡¡
Ö®ºó·´¶øËõС·½·¨µÄ·ÃÎÊ·¶Î§¡£»»ÑÔÖ®£¬Ò»µ©¶ÔÏó±äµÃ¿ÉÒÔ¿Ë¡£¬´ÓËüÑÜÉúµÄÈκζ«Î÷¶¼ÊÇÄܹ»¿Ë¡µÄ£¬³ý¡¡
·ÇʹÓÃÌØÊâµÄ»úÖÆ£¨ºóÃæÌÖÂÛ£©ÁîÆä¡°¹Ø±Õ¡±¿Ë¡ÄÜÁ¦¡£¡¡¡¡
¡¡¡¡
2¡£¡¡ÊµÏÖCloneable¡¡½Ó¿Ú¡¡¡¡
Ϊʹһ¸ö¶ÔÏóµÄ¿Ë¡ÄÜÁ¦¹¦³ÉÔ²Âú£¬»¹ÐèÒª×öÁíÒ»¼þÊÂÇ飺ʵÏÖCloneable¡¡½Ó¿Ú¡£Õâ¸ö½Ó¿ÚʹÈËÉÔ¾õÆæ¹Ö£¬¡¡
ÒòΪËüÊǿյģ¡¡¡¡¡
interface¡¡Cloneable¡¡£û£ý¡¡¡¡
Ö®ËùÒÔҪʵÏÖÕâ¸ö¿Õ½Ó¿Ú£¬ÏÔÈ»²»ÊÇÒòΪÎÒÃÇ×¼±¸ÉÏËÝÔìÐͳÉÒ»¸öCloneable£¬ÒÔ¼°µ÷ÓÃËüµÄij¸ö·½·¨¡£ÓС¡
ЩÈËÈÏΪÔÚÕâÀïʹÓýӿÚÊôÓÚÒ»ÖÖ¡°ÆÛÆ¡±ÐÐΪ£¬ÒòΪËüʹÓõÄÌØÐÔ´òµÄÊDZðµÄÖ÷Ò⣬¶ø·ÇÔÀ´µÄÒâ˼¡£¡¡
Cloneable¡¡interface¡¡µÄʵÏÖ°çÑÝÁËÒ»¸ö±ê¼ÇµÄ½ÇÉ«£¬·â×°µ½ÀàµÄÀàÐÍÖС£¡¡¡¡
Á½·½ÃæµÄÔÒò´Ù³ÉÁËCloneable¡¡interface¡¡µÄ´æÔÚ¡£Ê×ÏÈ£¬¿ÉÄÜÓÐÒ»¸öÉÏËÝÔìÐ;ä±úÖ¸ÏòÒ»¸ö»ù´¡ÀàÐÍ£¬¶ø¡¡
ÇÒ²»ÖªµÀËüÊÇ·ñÕæµÄÄÜ¿Ë¡ÄǸö¶ÔÏó¡£ÔÚÕâÖÖÇé¿öÏ£¬¿ÉÓá¡instanceof¡¡¹Ø¼ü×Ö£¨µÚ¡¡11ÕÂÓнéÉÜ£©µ÷²é¾ä±ú¡¡
ÊÇ·ñȷʵͬһ¸öÄÜ¿Ë¡µÄ¶ÔÏóÁ¬½Ó£º¡¡¡¡
if£¨myHandle¡¡instanceof¡¡Cloneable£©¡¡//¡¡¡£¡£¡£¡¡¡¡
µÚ¶þ¸öÔÒòÊÇ¿¼Âǵ½ÎÒÃÇ¿ÉÄܲ»Ô¸ËùÓжÔÏóÀàÐͶ¼ÄÜ¿Ë¡¡£ËùÒÔObject¡£clone£¨£©»áÑéÖ¤Ò»¸öÀàÊÇ·ñÕæµÄÊÇʵ¡¡
ÏÖÁËCloneable¡¡½Ó¿Ú¡£Èô´ð°¸ÊÇ·ñ¶¨µÄ£¬Ôò¡°ÖÀ¡±³öÒ»¸ö¡¡CloneNotSupportedException¡¡Î¥Àý¡£ËùÒÔÔÚÒ»°ãÇé¡¡
¿öÏ£¬ÎÒÃDZØÐ뽫¡°implement¡¡Cloneable¡±×÷Ϊ¶Ô¿Ë¡ÄÜÁ¦Ìṩ֧³ÖµÄÒ»²¿·Ö¡£¡¡¡¡
12¡£2¡£4¡¡¡¡³É¹¦µÄ¿Ë¡¡¡¡¡
Àí½âÁËʵÏÖ¡¡clone£¨£©·½·¨±³ºóµÄËùÓÐϸ½Úºó£¬±ã¿É´´½¨³öÄÜ·½±ã¸´ÖƵÄÀ࣬ÒÔ±ãÌṩÁËÒ»¸ö±¾µØ¸±±¾£º¡¡¡¡
¡¡¡¡
//£º¡¡LocalCopy¡£java¡¡¡¡
//¡¡Creating¡¡local¡¡copies¡¡with¡¡clone£¨£©¡¡¡¡
import¡¡java¡£util¡£*£»¡¡¡¡
¡¡¡¡
class¡¡MyObject¡¡implements¡¡Cloneable¡¡£û¡¡¡¡
¡¡¡¡int¡¡i£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡353¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡355¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡MyObject£¨int¡¡ii£©¡¡£û¡¡i¡¡=¡¡ii£»¡¡£ý¡¡¡¡
¡¡¡¡public¡¡Object¡¡clone£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡Object¡¡o¡¡=¡¡null£»¡¡¡¡
¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡o¡¡=¡¡super¡£clone£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡catch¡¡£¨CloneNotSupportedException¡¡e£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨MyObject¡¡can't¡¡clone¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡return¡¡o£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡String¡¡toString£¨£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡return¡¡Integer¡£toString£¨i£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡¡¡
¡¡¡¡
public¡¡class¡¡LocalCopy¡¡£û¡¡¡¡
¡¡¡¡static¡¡MyObject¡¡g£¨MyObject¡¡v£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Passing¡¡a¡¡handle£»¡¡modifies¡¡outside¡¡object£º¡¡¡¡
¡¡¡¡¡¡¡¡v¡£i£«£«£»¡¡¡¡
¡¡¡¡¡¡¡¡return¡¡v£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡static¡¡MyObject¡¡f£¨MyObject¡¡v£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡v¡¡=¡¡£¨MyObject£©v¡£clone£¨£©£»¡¡//¡¡Local¡¡copy¡¡¡¡
¡¡¡¡¡¡¡¡v¡£i£«£«£»¡¡¡¡
¡¡¡¡¡¡¡¡return¡¡v£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡MyObject¡¡a¡¡=¡¡new¡¡MyObject£¨11£©£»¡¡¡¡
¡¡¡¡¡¡¡¡MyObject¡¡b¡¡=¡¡g£¨a£©£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡Testing¡¡handle¡¡equivalence£»¡¡¡¡
¡¡¡¡¡¡¡¡//¡¡not¡¡object¡¡equivalence£º¡¡¡¡
¡¡¡¡¡¡¡¡if£¨a¡¡==¡¡b£©¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨a¡¡==¡¡b¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡else¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨a¡¡£¡=¡¡b¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨a¡¡=¡¡¡¨¡¡£«¡¡a£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨b¡¡=¡¡¡¨¡¡£«¡¡b£©£»¡¡¡¡
¡¡¡¡¡¡¡¡MyObject¡¡c¡¡=¡¡new¡¡MyObject£¨47£©£»¡¡¡¡
¡¡¡¡¡¡¡¡MyObject¡¡d¡¡=¡¡f£¨c£©£»¡¡¡¡
¡¡¡¡¡¡¡¡if£¨c¡¡==¡¡d£©¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨c¡¡==¡¡d¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡else¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨c¡¡£¡=¡¡d¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨c¡¡=¡¡¡¨¡¡£«¡¡c£©£»¡¡¡¡
¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨d¡¡=¡¡¡¨¡¡£«¡¡d£©£»¡¡¡¡
¡¡¡¡£ý¡¡¡¡
£ý¡¡///£º~¡¡¡¡
¡¡¡¡
²»¹ÜÔõÑù£¬clone£¨£©±ØÐëÄܹ»·ÃÎÊ£¬ËùÒÔ±ØÐ뽫ÆäÉèΪ¡¡public¡¡£¨¹«¹²µÄ£©¡£Æä´Î£¬×÷Ϊclone£¨£©µÄ³õÆÚÐж¯£¬¡¡
Ó¦µ÷Óá¡clone£¨£©µÄ»ù´¡Àà°æ±¾¡£ÕâÀïµ÷ÓõÄclone£¨£©ÊÇ¡¡Object¡¡ÄÚ²¿Ô¤Ïȶ¨ÒåºÃµÄ¡£Ö®ËùÒÔÄܵ÷ÓÃËü£¬ÊÇÓÉÓÚ¡¡
Ëü¾ßÓС¡protected¡¡£¨Êܵ½±£»¤µÄ£©ÊôÐÔ£¬ËùÒÔÄÜÔÚÑÜÉúµÄÀàÀï·ÃÎÊ¡£¡¡¡¡
Object¡£clone£¨£©»á¼ì²éÔÏȵĶÔÏóÓжà´ó£¬ÔÙΪжÔÏóÌÚ³ö×ã¹»¶àµÄÄڴ棬½«ËùÓжþ½øÖÆλ´ÓÔÀ´µÄ¶ÔÏó¸´¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡354¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡356¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÖƵ½Ð¶ÔÏó¡£Õâ½Ð×÷¡°°´Î»¸´ÖÆ¡±£¬¶øÇÒ°´Ò»°ãµÄÏë·¨£¬Õâ¸ö¹¤×÷Ó¦¸ÃÊÇÓÉ¡¡clone£¨£©·½·¨À´×öµÄ¡£µ«ÔÚ¡¡
Object¡£clone£¨£©Õýʽ¿ªÊ¼²Ù×÷Ç°£¬Ê×ÏÈ»á¼ì²éÒ»¸öÀàÊÇ·ñ¡¡Cloneable£¬¼´ÊÇ·ñ¾ßÓпË¡ÄÜÁ¦¡ª¡ª»»ÑÔÖ®£¬Ëü¡¡
ÊÇ·ñʵÏÖÁË¡¡Cloneable¡¡½Ó¿Ú¡£ÈôδʵÏÖ£¬Object¡£clone£¨£©¾ÍÖÀ³öÒ»¸ö¡¡CloneNotSupportedException¡¡Î¥Àý£¬Ö¸¡¡
³öÎÒÃDz»ÄÜ¿Ë¡Ëü¡£Òò´Ë£¬ÎÒÃÇ×îºÃÓÃÒ»¸ötry¡catch¡¡¿é½«¶Ô¡¡super¡£clone£¨£©µÄµ÷ÓôúÂë°üΧ£¨»ò·â×°£©Æð¡¡
À´£¬ÊÔͼ²¶»ñÒ»¸öÓ¦µ±ÓÀ²»³öÏÖµÄÎ¥Àý£¨ÒòΪÕâÀïȷʵÒÑʵÏÖÁËCloneable¡¡½Ó¿Ú£©¡£¡¡¡¡
ÔÚLocalCopy¡¡ÖУ¬Á½¸ö·½·¨g£¨£©ºÍ¡¡f£¨£©½Òʾ³öÁ½ÖÖ²ÎÊý´«µÝ·½·¨¼äµÄ²îÒì¡£Æ