ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡ÔĶÁ¹ý³Ì·¢ÏÖÈκδíÎóÇë¸æËßÎÒÃÇ£¬Ð»Ð»£¡£¡ ±¨¸æ´íÎó
Ò»ÊÀÊé³Ç ·µ»Ø±¾ÊéĿ¼ ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ½øÈëÊé°É ¼ÓÈëÊéÇ©

Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ118ÕÂ

°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 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£¨£©½Òʾ³öÁ½ÖÖ²ÎÊý´«µÝ·½·¨¼äµÄ²îÒì¡£Æ
·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨0£©
δÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæдԭ´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøŶ£¡