°Ë±¦Êé¿â > ÎÄѧÆäËûµç×ÓÊé > Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ) >

µÚ98²¿·Ö

Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ)-µÚ98²¿·Ö

С˵£º Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎÄ°æ](PDF¸ñʽ) ×ÖÊý£º ÿҳ4000×Ö

°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡




¡¡¡¡

class¡¡FruitQualities¡¡£û¡¡¡¡

¡¡¡¡private¡¡int¡¡weight£»¡¡¡¡

¡¡¡¡private¡¡int¡¡color£»¡¡¡¡

¡¡¡¡private¡¡int¡¡firmness£»¡¡¡¡

¡¡¡¡private¡¡int¡¡ripeness£»¡¡¡¡

¡¡¡¡private¡¡int¡¡smell£»¡¡¡¡

¡¡¡¡//¡¡etc¡£¡¡¡¡

¡¡¡¡FruitQualities£¨£©¡¡£û¡¡//¡¡Default¡¡constructor¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡do¡¡something¡¡meaningful¡£¡£¡£¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡//¡¡Other¡¡constructors£º¡¡¡¡

¡¡¡¡//¡¡¡£¡£¡£¡¡¡¡

¡¡¡¡//¡¡Copy¡¡constructor£º¡¡¡¡

¡¡¡¡FruitQualities£¨FruitQualities¡¡f£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡weight¡¡=¡¡f¡£weight£»¡¡¡¡

¡¡¡¡¡¡¡¡color¡¡=¡¡f¡£color£»¡¡¡¡

¡¡¡¡¡¡¡¡firmness¡¡=¡¡f¡£firmness£»¡¡¡¡

¡¡¡¡¡¡¡¡ripeness¡¡=¡¡f¡£ripeness£»¡¡¡¡

¡¡¡¡¡¡¡¡smell¡¡=¡¡f¡£smell£»¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡etc¡£¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡Seed¡¡£û¡¡¡¡

¡¡¡¡//¡¡Members¡£¡£¡£¡¡¡¡

¡¡¡¡Seed£¨£©¡¡£û¡¡/*¡¡Default¡¡constructor¡¡*/¡¡£ý¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡366¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡368¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡Seed£¨Seed¡¡s£©¡¡£û¡¡/*¡¡Copy¡¡constructor¡¡*/¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡Fruit¡¡£û¡¡¡¡

¡¡¡¡private¡¡FruitQualities¡¡fq£»¡¡¡¡

¡¡¡¡private¡¡int¡¡seeds£»¡¡¡¡

¡¡¡¡private¡¡Seed£§£§¡¡s£»¡¡¡¡

¡¡¡¡Fruit£¨FruitQualities¡¡q£»¡¡int¡¡seedCount£©¡¡£û¡¡¡¡¡¡

¡¡¡¡¡¡¡¡fq¡¡=¡¡q£»¡¡¡¡

¡¡¡¡¡¡¡¡seeds¡¡=¡¡seedCount£»¡¡¡¡

¡¡¡¡¡¡¡¡s¡¡=¡¡new¡¡Seed£§seeds£§£»¡¡¡¡

¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡seeds£»¡¡i£«£«£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡s£§i£§¡¡=¡¡new¡¡Seed£¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡//¡¡Other¡¡constructors£º¡¡¡¡

¡¡¡¡//¡¡¡£¡£¡£¡¡¡¡

¡¡¡¡//¡¡Copy¡¡constructor£º¡¡¡¡

¡¡¡¡Fruit£¨Fruit¡¡f£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡fq¡¡=¡¡new¡¡FruitQualities£¨f¡£fq£©£»¡¡¡¡

¡¡¡¡¡¡¡¡seeds¡¡=¡¡f¡£seeds£»¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡Call¡¡all¡¡Seed¡¡copy¡­constructors£º¡¡¡¡

¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡seeds£»¡¡i£«£«£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡s£§i£§¡¡=¡¡new¡¡Seed£¨f¡£s£§i£§£©£»¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡Other¡¡copy¡­construction¡¡activities¡£¡£¡£¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡//¡¡To¡¡allow¡¡derived¡¡constructors¡¡£¨or¡¡other¡¡¡¡¡¡

¡¡¡¡//¡¡methods£©¡¡to¡¡put¡¡in¡¡different¡¡qualities£º¡¡¡¡

¡¡¡¡protected¡¡void¡¡addQualities£¨FruitQualities¡¡q£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡fq¡¡=¡¡q£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡protected¡¡FruitQualities¡¡getQualities£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡fq£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡Tomato¡¡extends¡¡Fruit¡¡£û¡¡¡¡

¡¡¡¡Tomato£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡super£¨new¡¡FruitQualities£¨£©£»¡¡100£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡Tomato£¨Tomato¡¡t£©¡¡£û¡¡//¡¡Copy¡­constructor¡¡¡¡

¡¡¡¡¡¡¡¡super£¨t£©£»¡¡//¡¡Upcast¡¡for¡¡base¡¡copy¡­constructor¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡Other¡¡copy¡­construction¡¡activities¡£¡£¡£¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡ZebraQualities¡¡extends¡¡FruitQualities¡¡£û¡¡¡¡

¡¡¡¡private¡¡int¡¡stripedness£»¡¡¡¡

¡¡¡¡ZebraQualities£¨£©¡¡£û¡¡//¡¡Default¡¡constructor¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡do¡¡something¡¡meaningful¡£¡£¡£¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡ZebraQualities£¨ZebraQualities¡¡z£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡super£¨z£©£»¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡367¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡369¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡stripedness¡¡=¡¡z¡£stripedness£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡GreenZebra¡¡extends¡¡Tomato¡¡£û¡¡¡¡

¡¡¡¡GreenZebra£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡addQualities£¨new¡¡ZebraQualities£¨£©£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡GreenZebra£¨GreenZebra¡¡g£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡super£¨g£©£»¡¡//¡¡Calls¡¡Tomato£¨Tomato£©¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡Restore¡¡the¡¡right¡¡qualities£º¡¡¡¡

¡¡¡¡¡¡¡¡addQualities£¨new¡¡ZebraQualities£¨£©£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡void¡¡evaluate£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡ZebraQualities¡¡zq¡¡=¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£¨ZebraQualities£©getQualities£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡Do¡¡something¡¡with¡¡the¡¡qualities¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡¡£¡£¡£¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

public¡¡class¡¡CopyConstructor¡¡£û¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡ripen£¨Tomato¡¡t£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡Use¡¡the¡¡¡¨copy¡¡constructor¡¨£º¡¡¡¡

¡¡¡¡¡¡¡¡t¡¡=¡¡new¡¡Tomato£¨t£©£»¡¡¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨In¡¡ripen£»¡¡t¡¡is¡¡a¡¡¡¨¡¡£«¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡t¡£getClass£¨£©¡£getName£¨£©£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡slice£¨Fruit¡¡f£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡f¡¡=¡¡new¡¡Fruit£¨f£©£»¡¡//¡¡Hmmm¡£¡£¡£¡¡will¡¡this¡¡work£¿¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨In¡¡slice£»¡¡f¡¡is¡¡a¡¡¡¨¡¡£«¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡f¡£getClass£¨£©¡£getName£¨£©£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡Tomato¡¡tomato¡¡=¡¡new¡¡Tomato£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡ripen£¨tomato£©£»¡¡//¡¡OK¡¡¡¡

¡¡¡¡¡¡¡¡slice£¨tomato£©£»¡¡//¡¡OOPS£¡¡¡¡¡

¡¡¡¡¡¡¡¡GreenZebra¡¡g¡¡=¡¡new¡¡GreenZebra£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡ripen£¨g£©£»¡¡//¡¡OOPS£¡¡¡¡¡

¡¡¡¡¡¡¡¡slice£¨g£©£»¡¡//¡¡OOPS£¡¡¡¡¡

¡¡¡¡¡¡¡¡g¡£evaluate£¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

Õâ¸öÀý×ÓµÚÒ»ÑÛ¿´ÉÏÈ¥ÏÔµÃÓеãÆæ¹Ö¡£²»Í¬Ë®¹ûµÄÖÊÁ¿¿Ï¶¨ÓÐËùÇø±ð£¬µ«ÎªÊ²Ã´Ö»ÊÇ°Ñ´ú±íÄÇЩÖÊÁ¿µÄÊý¾Ý¡¡

³ÉÔ±Ö±½ÓÖÃÈëFruit¡¡£¨Ë®¹û£©ÀࣿÓÐÁ½·½Ãæ¿ÉÄܵÄÔ­Òò¡£µÚÒ»¸öÊÇÎÒÃÇ¿ÉÄÜÏë¼ò±ãµØ²åÈë»òÐÞ¸ÄÖÊÁ¿¡£×¢Òâ¡¡

Fruit¡¡ÓÐÒ»¸öprotected¡¡£¨Êܵ½±£»¤µÄ£©addQualities£¨£©·½·¨£¬ËüÔÊÐíÑÜÉúÀàÀ´½øÐÐÕâЩ²åÈë»òÐ޸IJÙ×÷£¨´ó¡¡

¼Ò»òÐí»áÈÏΪ×îºÏºõÂß¼­µÄ×ö·¨ÊÇÔÚFruit¡¡ÖÐʹÓÃÒ»¸öprotected¡¡¹¹½¨Æ÷£¬ÓÃËü»ñÈ¡FruitQualities¡¡²ÎÊý£¬¡¡

µ«¹¹½¨Æ÷²»Äܼ̳У¬ËùÒÔ²»¿ÉÔÚµÚ¶þ¼¶»ò¼¶Êý¸üÉîµÄÀàÖÐʹÓÃËü£©¡£Í¨¹ý½«Ë®¹ûµÄÖÊÁ¿ÖÃÈëÒ»¸ö¶ÀÁ¢µÄÀ࣬¡¡

¿ÉÒԵõ½¸ü´óµÄÁé»îÐÔ£¬ÆäÖаüÀ¨¿ÉÒÔÔÚÌض¨¡¡Fruit¡¡¶ÔÏóµÄ´æÔÚÆÚ¼äÖÐ;¸ü¸ÄÖÊÁ¿¡£¡¡¡¡

Ö®ËùÒÔ½«FruitQualities¡¡ÉèΪһ¸ö¶ÀÁ¢µÄ¶ÔÏó£¬ÁíÒ»¸öÔ­ÒòÊÇ¿¼Âǵ½ÎÒÃÇÓÐʱϣÍûÌí¼ÓеÄÖÊÁ¿£¬»òÕßͨ¹ý¡¡

¼Ì³ÐÓë¶àÐÎÐԸıäÐÐΪ¡£×¢Òâ¶ÔGreenZebra¡¡À´Ëµ£¨Õâʵ¼ÊÊÇÎ÷ºìÊÁµÄÒ»Àࡪ¡ªÎÒÒÑÔÔÖֳɹ¦£¬ËüÃǼòÖ±ÁîÈË¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡368¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡370¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

ÄÑÒÔÖÃÐÅ£©£¬¹¹½¨Æ÷»áµ÷ÓÃaddQualities£¨£©£¬²¢ÎªÆä´«µÝÒ»¸öZebraQualities¡¡¶ÔÏ󡣸öÔÏóÊÇ´Ó¡¡

FruitQualities¡¡ÑÜÉú³öÀ´µÄ£¬ËùÒÔÄÜÓë»ù´¡ÀàÖеġ¡FruitQualities¡¡¾ä±úÁªÏµÔÚÒ»Æð¡£µ±È»£¬Ò»µ©¡¡

GreenZebra¡¡Ê¹Óá¡FruitQualities£¬¾Í±ØÐ뽫ÆäÏÂËÝÔìÐͳÉΪÕýÈ·µÄÀàÐÍ£¨¾ÍÏóevaluate£¨£©ÖÐչʾµÄÄÇ¡¡

Ñù£©£¬µ«Ëü¿Ï¶¨ÖªµÀÀàÐÍÊÇZebraQualities¡£¡¡¡¡

´ó¼ÒÒ²¿´µ½ÓÐÒ»¸ö¡¡Seed¡¡£¨ÖÖ×Ó£©À࣬Fruit¡¡£¨´ó¼Ò¶¼ÖªµÀ£¬Ë®¹ûº¬ÓÐ×Ô¼ºµÄÖÖ×Ó£©°üº¬ÁËÒ»¸öSeed¡¡Êý×é¡£¡¡¡¡

×îºó£¬×¢Òâÿ¸öÀ඼ÓÐÒ»¸ö¸±±¾¹¹½¨Æ÷£¬¶øÇÒÿ¸ö¸±±¾¹¹½¨Æ÷¶¼±ØÐë¹ØÐÄΪ»ù´¡ÀàºÍ³ÉÔ±¶ÔÏóµ÷Óø±±¾¹¹½¨¡¡

Æ÷µÄÎÊÌ⣬´Ó¶ø»ñµÃ¡°Éî²ã¸´ÖÆ¡±µÄЧ¹û¡£¶Ô¸±±¾¹¹½¨Æ÷µÄ²âÊÔÊÇÔÚ¡¡CopyConstructor¡¡ÀàÄÚ½øÐеġ£·½·¨¡¡

ripen£¨£©ÐèÒª»ñÈ¡Ò»¸öTomato¡¡²ÎÊý£¬²¢¶ÔÆäÖ´Ðи±±¾¹¹½¨¹¤×÷£¬ÒԱ㸴ÖƶÔÏ󣺡¡¡¡

t¡¡=¡¡new¡¡Tomato£¨t£©£»¡¡¡¡

¶ø¡¡slice£¨£©ÐèÒª»ñÈ¡Ò»¸ö¸ü³£¹æµÄ¡¡Fruit¡¡¶ÔÏ󣬶øÇÒ¶ÔËü½øÐи´ÖÆ£º¡¡¡¡

f¡¡=¡¡new¡¡Fruit£¨f£©£»¡¡¡¡

ËüÃǶ¼ÔÚmain£¨£©ÖаéË治ͬÖÖÀàµÄFruit¡¡½øÐвâÊÔ¡£ÏÂÃæÊÇÊä³ö½á¹û£º¡¡¡¡

¡¡¡¡

In¡¡ripen£»¡¡t¡¡is¡¡a¡¡Tomato¡¡¡¡

In¡¡slice£»¡¡f¡¡is¡¡a¡¡Fruit¡¡¡¡

In¡¡ripen£»¡¡t¡¡is¡¡a¡¡Tomato¡¡¡¡

In¡¡slice£»¡¡f¡¡is¡¡a¡¡Fruit¡¡¡¡

¡¡¡¡

´ÓÖпÉÒÔ¿´³öÒ»¸öÎÊÌâ¡£ÔÚslice£¨£©ÄÚ²¿¶ÔTomato¡¡½øÐÐÁ˸±±¾¹¹½¨¹¤×÷ÒԺ󣬽á¹û±ã²»ÔÙÊÇÒ»¸ö¡¡Tomato¡¡¶Ô¡¡

Ï󣬶øÖ»ÊÇÒ»¸öFruit¡£ËüÒѶªÊ§ÁË×÷Ϊһ¸öTomato¡¡£¨Î÷ºìÊÁ£©µÄËùÓÐÌØÕ÷¡£´ËÍ⣬Èç¹û²ÉÓÃÒ»¸ö¡¡

GreenZebra£¬ripen£¨£©ºÍ¡¡slice£¨£©»á°ÑËü·Ö±ðת»»³ÉÒ»¸ö¡¡Tomato¡¡ºÍÒ»¸ö¡¡Fruit¡£ËùÒԷdz£²»ÐÒ£¬¼ÙÈçÏëÖÆ×÷¶Ô¡¡

ÏóµÄÒ»¸ö±¾µØ¸±±¾£¬Java¡¡Öеĸ±±¾¹¹½¨Æ÷±ã²»ÊÇÌرðÊʺÏÎÒÃÇ¡£¡¡¡¡

¡¡¡¡

1¡£¡¡ÎªÊ²Ã´ÔÚC£«£«µÄ×÷ÓñÈÔÚ¡¡Java¡¡Öд󣿡¡¡¡

¸±±¾¹¹½¨Æ÷ÊÇC£«£«µÄÒ»¸ö»ù±¾¹¹³É²¿·Ö£¬ÒòΪËüÄÜ×Ô¶¯²úÉú¶ÔÏóµÄÒ»¸ö±¾µØ¸±±¾¡£µ«Ç°ÃæµÄÀý×Óȷʵ֤Ã÷ÁË¡¡

Ëü²»ÊʺÏÔÚ¡¡Java¡¡ÖÐʹÓã¬ÎªÊ²Ã´ÄØ£¿ÔÚ¡¡Java¡¡ÖУ¬ÎÒÃDzٿصÄÒ»Çж«Î÷¶¼ÊǾä±ú£¬¶øÔÚC£«£«ÖУ¬È´¿ÉÒÔʹÓá¡

ÀàËÆÓÚ¾ä±úµÄ¶«Î÷£¬Ò²ÄÜÖ±½Ó´«µÝ¶ÔÏó¡£Õâʱ±ãÒªÓõ½C£«£«µÄ¸±±¾¹¹½¨Æ÷£ºÖ»ÒªÏë»ñµÃÒ»¸ö¶ÔÏ󣬲¢°´Öµ´«¡¡

µÝËü£¬¾Í¿ÉÒÔ¸´ÖƶÔÏó¡£ËùÒÔËüÔÚ¡¡C£«£«ÀïÄܺܺõع¤×÷£¬µ«Ó¦×¢ÒâÕâÌ×»úÖÆÔÚJava¡¡ÀïÊǺܲ»Í¨µÄ£¬ËùÒÔ²»Òª¡¡

ÓÃËü¡£¡¡¡¡



12¡£4¡¡Ö»¶ÁÀà¡¡¡¡



¾¡¹ÜÔÚһЩÌض¨µÄ³¡ºÏ£¬ÓÉclone£¨£©²úÉúµÄ±¾µØ¸±±¾Äܹ»»ñµÃÎÒÃÇÏ£ÍûµÄ½á¹û£¬µ«³ÌÐòÔ±£¨·½·¨µÄ×÷Õߣ©²»¡¡

µÃ²»Ç××Ô½ûÖ¹±ðÃû´¦ÀíµÄ¸±×÷Ó᣼ÙÈçÏëÖÆ×÷Ò»¸ö¿â£¬ÁîÆä¾ßÓг£¹æÓÃ;£¬µ«È´²»Äܵ£±£Ëü¿Ï¶¨ÄÜÔÚÕýÈ·µÄ¡¡

ÀàÖеÃÒÔ¿Ë¡£¬ÕâʱÓÖ¸ÃÔõô°ìÄØ£¿¸üÓпÉÄܵÄÒ»ÖÖÇé¿öÊÇ£¬¼ÙÈçÎÒÃÇÏëÈñðÃû·¢»Ó»ý¼«µÄ×÷Ó᪡ª½ûÖ¹²»¡¡

±ØÒªµÄ¶ÔÏó¸´ÖÆ¡ª¡ªµ«È´²»Ï£Íû¿´µ½ÓÉ´ËÔì³ÉµÄ¸±×÷Óã¬ÄÇôÓÖ¸ÃÈçºÎ´¦ÀíÄØ£¿¡¡¡¡

Ò»¸ö°ì·¨ÊÇ´´½¨¡°²»±ä¶ÔÏó¡±£¬ÁîÆä´ÓÊôÓÚÖ»¶ÁÀà¡£¿É¶¨ÒåÒ»¸öÌØÊâµÄÀ࣬ʹÆäÖÐûÓÐÈκη½·¨ÄÜÔì³É¶ÔÏó¡¡

ÄÚ²¿×´Ì¬µÄ¸Ä±ä¡£ÔÚÕâÑùµÄÒ»¸öÀàÖУ¬±ðÃû´¦ÀíÊÇûÓÐÎÊÌâµÄ¡£ÒòΪÎÒÃÇÖ»ÄܶÁÈ¡ÄÚ²¿×´Ì¬£¬ËùÒÔµ±¶à´¦´ú¡¡

Â붼¶ÁÈ¡ÏàͬµÄ¶ÔÏóʱ£¬²»»á³öÏÖÈκθ±×÷Óᣡ¡¡¡

×÷Ϊ¡°²»±ä¶ÔÏó¡±Ò»¸ö¼òµ¥Àý×Ó£¬Java¡¡µÄ±ê×¼¿â°üº¬ÁË¡°·â×°Æ÷¡±£¨wrapper¡¡£©À࣬¿ÉÓÃÓÚËùÓлù±¾Êý¾ÝÀà¡¡

ÐÍ¡£´ó¼Ò¿ÉÄÜÒÑ·¢ÏÖÁËÕâÒ»µã£¬Èç¹ûÏëÔÚÒ»¸öÏóVector¡¡£¨Ö»²ÉÓÃObject¡¡¾ä±ú£©ÕâÑùµÄ¼¯ºÏÀï±£´æÒ»¸ö¡¡int¡¡

ÊýÖµ£¬¿ÉÒÔ½«Õâ¸ö¡¡int¡¡·â×°µ½±ê×¼¿âµÄ¡¡IntegerÀàÄÚ²¿¡£ÈçÏÂËùʾ£º¡¡¡¡

¡¡¡¡

//£º¡¡ImmutableInteger¡£java¡¡¡¡

//¡¡The¡¡Integer¡¡class¡¡cannot¡¡be¡¡changed¡¡¡¡

import¡¡java¡£util¡£*£»¡¡¡¡

¡¡¡¡

public¡¡class¡¡ImmutableInteger¡¡£û¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡Vector¡¡v¡¡=¡¡new¡¡Vector£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡10£»¡¡i£«£«£©¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡v¡£addElement£¨new¡¡Integer£¨i£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡//¡¡But¡¡how¡¡do¡¡you¡¡change¡¡the¡¡int¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡369¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡371¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡//¡¡inside¡¡the¡¡Integer£¿¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

IntegerÀࣨÒÔ¼°»ù±¾µÄ¡°·â×°Æ÷¡±ÀࣩÓüòµ¥µÄÐÎʽʵÏÖÁË¡°²»±äÐÔ¡±£ºËüÃÇûÓÐÌṩ¿ÉÒÔÐ޸ĶÔÏóµÄ·½¡¡

·¨¡£¡¡¡¡

ÈôȷʵÐèÒªÒ»¸öÈÝÄÉÁË»ù±¾Êý¾ÝÀàÐ͵ĶÔÏ󣬲¢Ïë¶Ô»ù±¾Êý¾ÝÀàÐͽøÐÐÐ޸ģ¬¾Í±ØÐëÇ××Ô´´½¨ËüÃÇ¡£ÐÒÔ˵ġ¡

ÊÇ£¬²Ù×÷·Ç³£¼òµ¥£º¡¡¡¡

¡¡¡¡

//£º¡¡MutableInteger¡£java¡¡¡¡

//¡¡A¡¡changeable¡¡wrapper¡¡class¡¡¡¡

import¡¡java¡£util¡£*£»¡¡¡¡

¡¡¡¡

class¡¡IntValue¡¡£û¡¡¡¡¡¡

¡¡¡¡int¡¡n£»¡¡¡¡

¡¡¡¡IntValue£¨int¡¡x£©¡¡£û¡¡n¡¡=¡¡x£»¡¡£ý¡¡¡¡

¡¡¡¡public¡¡String¡¡toString£¨£©¡¡£û¡¡¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡Integer¡£toString£¨n£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

public¡¡class¡¡MutableInteger¡¡£û¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡Vector¡¡v¡¡=¡¡new¡¡Vector£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡10£»¡¡i£«£«£©¡¡¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡v¡£addElement£¨new¡¡IntValue£¨i£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨v£©£»¡¡¡¡

¡¡¡¡¡¡¡¡for£¨int¡¡i¡¡=¡¡0£»¡¡i¡¡¡¶¡¡v¡£size£¨£©£»¡¡i£«£«£©¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£¨£¨IntValue£©v¡£elementAt£¨i£©£©¡£n£«£«£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨v£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

×¢Òân¡¡ÔÚÕâÀï¼ò»¯ÁËÎÒÃǵıàÂë¡£¡¡¡¡

ÈôĬÈϵijõʼ»¯ÎªÁãÒѾ­×ã¹»£¨±ã²»ÐèÒª¹¹½¨Æ÷£©£¬¶øÇÒ²»Óÿ¼ÂÇ°ÑËü´òÓ¡³öÀ´£¨±ã²»ÐèÒª¡¡toString¡¡£©£¬ÄÇ¡¡

ô¡¡IntValue¡¡ÉõÖÁ»¹Äܸü¼Ó¼òµ¥¡£ÈçÏÂËùʾ£º¡¡¡¡

class¡¡IntValue¡¡£û¡¡int¡¡n£»¡¡£ý¡¡¡¡

½«ÔªËØÈ¡³öÀ´£¬ÔÙ¶ÔÆä½øÐÐÔìÐÍ£¬Õâ¶àÉÙÏÔµÃÓÐЩ±¿×¾£¬µ«ÄÇÊÇVector¡¡µÄÎÊÌ⣬²»ÊÇIntValue¡¡µÄ´í¡£¡¡¡¡



12¡£4¡£1¡¡´´½¨Ö»¶ÁÀà¡¡¡¡



ÍêÈ«¿ÉÒÔ´´½¨×Ô¼ºµÄÖ»¶ÁÀ࣬ÏÂÃæÊǸö¼òµ¥µÄÀý×Ó£º¡¡¡¡

¡¡¡¡

//£º¡¡Immutable1¡£java¡¡¡¡

//¡¡Objects¡¡that¡¡cannot¡¡be¡¡modified¡¡¡¡

//¡¡are¡¡immune¡¡to¡¡aliasing¡£¡¡¡¡

¡¡¡¡

public¡¡class¡¡Immutable1¡¡£û¡¡¡¡

¡¡¡¡private¡¡int¡¡data£»¡¡¡¡

¡¡¡¡public¡¡Immutable1£¨int¡¡initVal£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡data¡¡=¡¡initVal£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡int¡¡read£¨£©¡¡£û¡¡return¡¡data£»¡¡£ý¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡370¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡372¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡public¡¡boolean¡¡nonzero£¨£©¡¡£û¡¡return¡¡data¡¡£¡=¡¡0£»¡¡£ý¡¡¡¡

¡¡¡¡public¡¡Immutable1¡¡quadruple£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡return¡¡new¡¡Immutable1£¨data¡¡*¡¡4£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡static¡¡void¡¡f£¨Immutable1¡¡i1£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡Immutable1¡¡quad¡¡=¡¡i1¡£quadruple£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨i1¡¡=¡¡¡¨¡¡£«¡¡i1¡£read£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨quad¡¡=¡¡¡¨¡¡£«¡¡quad¡£read£¨£©£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡static¡¡void¡¡main£¨String£§£§¡¡args£©¡¡¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡Immutable1¡¡x¡¡=¡¡new¡¡Immutable1£¨47£©£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨x¡¡=¡¡¡¨¡¡£«¡¡x¡£read£¨£©£©£»¡¡¡¡

¡¡¡¡¡¡¡¡f£¨x£©£»¡¡¡¡

¡¡¡¡¡¡¡¡System¡£out¡£println£¨¡¨x¡¡=¡¡¡¨¡¡£«¡¡x¡£read£¨£©£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£º~¡¡¡¡

¡¡¡¡

ËùÓÐÊý¾Ý¶¼ÉèΪprivate£¬¿ÉÒÔ¿´µ½Ã»ÓÐÈκÎpublic¡¡·½·¨¶ÔÊý¾Ý×÷³öÐ޸ġ£ÊÂʵÉÏ£

·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨1£©

Äã¿ÉÄÜϲ»¶µÄ