ÕâÑù×ö¡£Á´½ÓÆ÷½«²»µÃ²»×ö¸ü¶àµÄ¹¤×÷£¬ÒòΪ±àÒëÆ÷ÎÞ·¨Ô¤ÁÏÒ»¸ö·½·¨ÊÇ·ñÔÚij¸öÄ£¿éÖỶ¨Òå¡£
¡¤OP£ºÔÚObject PascalÖУ¬Ô´´úÂëÎļþ±»³ÆΪµ¥Ôª£¨unit£©¡£µ¥Ôª±»·ÖΪ½Ó¿Ú£¨interface£©ºÍʵÏÖ£¨implementation£©Á½²¿·Ö¡£½Ó¿Ú²¿·Ö°üº¬ÁËÀàµÄ¶¨Ò壨°üÀ¨·½·¨µÄÉùÃ÷£©£¬ÊµÏÖ²¿·ÖÔò°üº¬ÁËÉùÃ÷ÓÚ½Ó¿Ú²¿·ÖµÄ·½·¨µÄ¶¨Òå¡£ÔÚ½Ó¿ÚÖбàдִÐдúÂëÊÇ·Ç·¨µÄ¡£Äã¿ÉÒÔʹÓÃuses×Ó¾ä°üº¬ÆäËüÎļþ£¬ÒÔ±ãÒýÓÃÆäÖÐÉùÃ÷µÄÀà¡¢·½·¨µÈµÈ¡£ÏÂÃæµÄ´úÂë°üº¬ÁËһЩ±àÒëµ¥ÔªµÄ½Ó¿Ú£º
uses
Windows, Form, MyFile;
¡¤Java£ºÔÚJavaÖУ¬Ã¿¸öÔ´´úÂëÎļþ£¬»òÕß˵±àÒëµ¥ÔªÖ®¼äÊÇÍêÈ«¶ÀÁ¢µÄ¡£Äã¿ÉÒÔ°ÑÒ»×é±àÒëµ¥Ôª×÷Ϊһ¸ö°üµÄÒ»²¿·Ö¡£ÓëÆäËüÁ½ÖÖÓïÑÔ²»Í¬£¬ÔÚÉùÃ÷ÀàµÄͬʱҪ±àд·½·¨ÊµÏֵĴúÂë¡£µ±Ê¹ÓÃimport×Ó¾ä°üº¬Ò»¸öÎļþʱ£¬±àÒëÆ÷Ö»¶ÁÈëËüµÄpublicÉùÃ÷£¬¶ø²»ÊÇËùÓеĴúÂ룺
import where.myclass;
import where.* // all the classes
¡¤×¢Ò⣺¹ØÓÚ±»³ÆΪÃû×Ö¿Õ¼äµÄÄ£¿é¡£ÁíÒ»¸ö¹Ø¼üÐÔµÄÇø±ðÊÇJavaºÍOPµÄ±àÒëÆ÷¿ÉÒÔ¶ÁÈëÒ»¸öÒѱàÒëÎļþ£¬²¢´ÓÖÐÌáÈ¡ËüµÄ¶¨Ò壬¾ÍÏñÄã´ÓÒѱàÒë´úÂëÖÐÌáÈ¡Í·ÎļþÒ»Ñù¡£ÁíÒ»·½Ã棬C++ÓïÑÔÒýÓÃÃû×ֿռ䣨namespace£©À´ÃÖ²¹Ã»ÓÐÄ£¿é½á¹¹µÄ²»×ã¡£ÔÚJavaºÍOPÖУ¬ÊÂʵÉÏ£¬Í¨³£ÒÔÄ£¿éµÄÃû×ÖΪǰ׺À´½â¾öÃû×ÖÖ®¼äµÄ³åÍ»¡£Ê¹ÓÃÃû×Ö¿Õ¼äÒ²¿ÉÒԴﵽͬÑùµÄЧ¹û£¬²»¹ýËüÊÇÄÚ½¨ÔÚÓïÑÔÖеġ£
Àà/¾²Ì¬·½·¨ºÍÊý¾Ý³ÉÔ±
¡¤ÌØÐÔÃèÊö£ºÍ¨³£OOPÓïÑÔÔÊÐíijЩ·½·¨ºÍÊý¾Ý³ÉÔ±ÓëÕû¸öÀàÏà¹Ø£¬¶ø²»ÊǶÔÏó¸öÌå¡£Ò»°ãµÄÀà·½·¨¿ÉÒÔͨ¹ýÀàµÄµ¥¸ö¶ÔÏó»òÀàµ÷Óá£ÀàÊý¾Ý³ÉÔ±ÊDZ»ËùÓжÔÏó¹²ÏíµÄÊý¾Ý³ÉÔ±£¬¶ø²»ÊÇΪÿ¸ö¶ÔÏ󵥶À´´Á¢¡£
¡¤C++£ºÔÚC++ÖУ¬Àà·½·¨ºÍÀàÊý¾Ý³ÉÔ±ÒÔstatic¹Ø¼ü×ÖÉùÃ÷¡£ÀàÊý¾Ý³ÉÔ±±ØÐëʹÓÃÒ»¸öÌØÊâµÄÉùÃ÷À´³õʼ»¯£¬ÕâÊÇȱÉÙÄ£¿é½á¹¹µÄ²»×ãÖ®Ò»¡£
¡¤OP£ºOPÖÐÖ»ÓÐÀà·½·¨£¬Ê¹ÓÃclass¹Ø¼ü×ÖÉùÃ÷¡£¶ø¶¨ÒåÓÚͬһµ¥ÔªÖеÄ˽ÓÐÈ«¾Ö±äÁ¿¿ÉÒÔ·¢»ÓÀàÊý¾Ý³ÉÔ±µÄ×÷Óá£
¡¤Java£ºJavaʹÓúÍC++ÏàͬµÄ¹Ø¼ü×Östatic¡£¾²Ì¬·½·¨¾³£±»Ê¹Óã¨ÉõÖÁÓÐЩ¹ý·Ö£©£¬ÕâÊÇÒòΪÔÚJavaÖÐûÓÐÈ«¾Öº¯Êý¡£¾²Ì¬Êý¾Ý³ÉÔ±¿ÉÒÔÖ±½ÓÔÚÀàÉùÃ÷Öгõʼ»¯¡£
ÀàºÍ¼Ì³Ð
¡¤ÌØÐÔÃèÊö£ºÀàµÄ¼Ì³ÐÊÇOOPµÄ¸ù»ùÖ®Ò»¡£Ëü¿ÉÒÔÓÃÀ´×öÒ»°ã»¯±íÊöºÍÌØÊ⻯±íÊö¡£¹ØÓڼ̳еĻù´¡Ë¼ÏëÊÇͨ¹ýÐ޸ĻòÀ©Õ¹ÏÖ´æµÄÀàÐͽ¨Á¢ÐµÄÀàÐÍ£¬»»¾ä»°Ëµ£¬Ò»¸öÅÉÉúÀà¾ßÓлùÀàµÄËùÓÐÊý¾Ý³ÉÔ±ºÍ·½·¨£¬²¢Ìí¼ÓÁËеÄÊý¾Ý³ÉÔ±ºÍ·½·¨£¬»¹ÓпÉÄÜÐÞ¸ÄijЩÒÔ´æÔڵķ½·¨¡£²»Í¬µÄOOPÓïÑÔÓò»Í¬µÄÃû´ÊÃèÊöÕâÖÖ»úÖÆ£¨derivation£¬inheritance£¬subclassing£©¡¢±»¼Ì³ÐµÄÀࣨ»ùÀ࣬¸¸À࣬³¬ÀࣩºÍ¼Ì³ÐµÄÀࣨÅÉÉúÀ࣬×ÓÀ࣬´ÎÀà)¡£
¡¤C++£ºC++ʹÓÃpublic¡¢protectedºÍprivate¹Ø¼ü×Ö¶¨Òå¼Ì³ÐµÄ·½Ê½£¬¸Ä±ä¼Ì³ÐµÄ·½·¨ºÍÊý¾Ý³ÉÔ±µÄ·ÃÎÊÏÞ¶¨ÀàÐÍ¡£ËäÈ»public¼Ì³Ð×î³£±»Ê¹Ó㬵«ÔÚC++ÖÐĬÈϵÄÊÇprivate¼Ì³Ð¡£C++ÊÇÕâÈýÖÖÓïÑÔÖÐΨһÔÊÐí¶àÖؼ̳еÄÓïÑÔ£¬ÒÔºóÎÒÃÇ»¹»áÌáµ½¡£ÏÂÃæÊÇÒ»¸öÀý×Ó£º
class Dog: public Animal {
¡
};
¡¤OP£ºObject PascalʹÓÃÒ»¸öÌØÊâµÄÓï·¨±íÊö¼Ì³Ð£¬¶ø²»ÊÇʹÓùؼü×Ö£¬·½·¨Êǽ«»ùÀàÃû·ÅÈëÀ¨ºÅÖУ¬Ìí¼Óµ½ÀàÉùÃ÷ÖС£OPÖ»Ö§³ÖC++ÖÐËùνpublicµÄ¼Ì³Ð¡£OPÀà¾ßÓÐÒ»¸öͨÓûùÀ࣬ÒÔºóÎÒÃÇ»á¼ûµ½¡£
type
Dog = class (Animal)
¡
end;
¡¤Java£ºJavaʹÓÃextends¹Ø¼ü×ÖÀ´±íÊöΨһһÖּ̳ÐÀàÐÍ£¬¶ÔÓ¦ÓÚC++ÖеÄpublic¼Ì³Ð¡£Java²»Ö§³Ö¶àÖؼ̳С£JavaÀàͬÑù¾ßÓÐÒ»¸öͨÓûùÀà¡£
class Dog extends Animal {
¡
}
¡¤×¢Ò⣺¹ØÓÚ»ùÀàµÄ¹¹Ô캯ÊýºÍ³õʼ»¯¡£ÔÚC++ºÍJavaÖУ¬»ùÀàµÄ¹¹Ô캯Êý¾ßÓкܸ´ÔӵĽṹ¡£ÔÚOPÖУ¬³õʼ»¯»ùÀàÔòÊdzÌÐòÔ±µÄÔðÈΡ£Õâ¸öÖ÷Ìâ±È½Ï¸´ÔÓ£¬ËùÒÔÎÒ²»´òËã½øÒ»²½½²Êö¡£ÎÒ»á°Ñ×¢ÒâÁ¦¼¯ÖÐÔÚͨÓûùÀà¡¢»ùÀà·ÃÎÊ¡¢¶àÖؼ̳С¢½Ó¿Ú¡¢ºóÆÚ°ó¶¨ÒÔ¼°ÆäËüÏà¹ØµÄÄÚÈÝ¡£
ËùÓÐÀàµÄ×æÏÈ
¡¤ÌØÐÔÃèÊö£ºÔÚһЩOOPÓïÑÔÖУ¬ËùÓÐÀ඼ֱ½Ó»ò¼ä½ÓµÄÅÉÉú×Ôij¸öÌض¨µÄ»ùÀà¡£Õâ¸öÀࣨͨ³£±»³ÆΪObject»òÆäËüÀàËƵÄÃû×Ö£©¾ßÓÐËùÓÐÀ๲ÓеĻù±¾¹¦ÄÜ¡£ÊÂʵÉÏ£¬ËùÓÐÀ඼¼Ì³Ð×ÔÕâ¸ö»ùÀà¡£ÒòΪ×î³õÔÚSmalltalkÖбãÊÇÈç´ËÉè¼ÆµÄ£¬ËùÒÔ´ó¶àÊýOOPÓïÑÔ²ÉÓÃÁËÕâ¸ö¸ÅÄî¡£
¡¤C++£ºËäÈ»ÔÚC++ÖÐûÓÐÕâ¸ö¸ÅÄµ«Ðí¶àÓ¦ÓóÌÐò¿ò¼ÜÒýÈëÁËͨÓûùÀàµÄ¸ÅÄî¡£MFCÊǸöºÜºÃµÄÀý×Ó£¬ËüÓÐÒ»¸öCObjectÀà¡£ÊÂʵÉÏ£¬×î³õÕâÊÇÊ®·ÖÒâÒåµÄ£¬ÒòΪÓïÑÔ²»¾ßÓÐÄ£°åÌØÐÔ£¨ÒÔ¼°¶àÖؼ̳ÐÌØÐÔ£©¡£
¡¤OP£ºÃ¿¸öÀ඼×Ô¶¯µÄ¼Ì³Ð×ÔTObjectÀà¡£ÒòΪOP²»Ö§³Ö¶àÖؼ̳У¬ËùÒÔËùÓеÄÀ๹³ÉÁËÒ»¸ö¾Þ´óµÄÅÉÉúÊ÷¡£TObjectÀà¿ÉÒÔ´¦ÀíRTTI£¬Í¬Ê±¾ßÓÐÆäËüһЩÄÜÁ¦¡£
¡¤Java£ºÈçͬOPÒ»Ñù£¬ËùÓеÄÀà¼Ì³Ð×ÔObjectÀà¡£Õâ¸ö»ùÀàÒ²¾ßÓÐһЩÓÐÏ޵ŦÄÜ¡£
·ÃÎÊ»ùÀàµÄ·½·¨
¡¤ÌØÐÔÃèÊö£ºµ±±àдһ¸öÀà·½·¨»òÕßÖØÔØÒ»¸ö»ùÀà·½·¨Ê±£¬Äã¾³£ÐèÒªÒýÓûùÀàµÄ·½·¨¡£¶øÈç¹û·½·¨ÔÚÅÉÉúÀàÖÐÖØỶ¨Ò壬ÄÇôʹÓ÷½·¨µÄÃû×Ö½«µ÷ÓÃз½·¨¡£OOPÓïÑÔʹÓò»Í¬µÄ¼¼Êõ»ò¹Ø¼ü×Ö½â¾ö·ÃÎÊ»ùÀà·½·¨µÄÎÊÌâ¡£
¡¤C++£ºÔÚC++ÖпÉÒÔʹÓ÷¶Î§²Ù×÷·û£¨::£©ÒýÓÃÒ»¸öÌض¨µÄÀà¡£Äã²»½ö¿ÉÒÔ·ÃÎÊ»ùÀ࣬ÉõÖÁ¿ÉÒÔ·ÃÎʼ̳ÐÁ´Öиü¸ß²ãµÄÀà¡£
¡¤OP£ºObject PascalʹÓÃÒ»¸öÌØÊâµÄ¹Ø¼ü×ÖÍê³ÉͬÑùµÄ¹¤×÷£ºinherited¡£Ôڹؼü×Öºó¿ÉÒÔ¼ÓÉÏÐèÒªµ÷ÓõĻùÀà·½·¨µÄÃû³Æ£¬»òÕߣ¨ÔÚijЩÇé¿öÏ£©£¬¼òµ¥µÄʹÓÃÕâ¸ö¹Ø¼ü×ÖÀ´·ÃÎʶÔÓ¦µÄ»ùÀà·½·¨¡£
¡¤Java£ºJavaÖÐʹÓÃsuper¹Ø¼ü×ÖÍê³ÉÀàËƵŤ×÷¡£ÔÚJavaºÍOPÖУ¬ÄãÎÞ·¨·ÃÎʸü¸ßÒ»¼¶µÄ»ùÀà¡£¿´ÆðÀ´ÕâËƺõÏÞÖÆÁËʲô£¬µ«ÊÇÕâÑù¿ÉÒÔͨ¹ýÌí¼ÓÖмäÀàÀ´À©Õ¹¼Ì³ÐÁ´¡£Í¬Ê±£¬Èç¹ûÄã²»ÐèÒª»ùÀàµÄ¹¦ÄÜ£¬ÄãÒ²Ðí¿ÉÒÔ²»´ÓÕâ¸ö»ùÀàÅÉÉúÄãµÄÐÂÀà¡£
×ÓÀà¼æÈÝÐÔ
¡¤ÌØÐÔÃèÊö£º²¢²»ÊÇËùÓÐOOPÓïÑÔ¶¼ÊÇÇ¿ÀàÐ͵ģ¬¾ÍÏñÎÒ¿ªÊ¼Ìáµ½µÄ£¬µ«ÊÇÕâÀïÎÒÃÇÉæ¼°µÄÈýÖÖÓïÑÔ¶¼ÊÇ¡£ÕâÒâζ×Ų»Í¬ÀàµÄ¶ÔÏóÖ®¼äÊDz»¼æÈݵġ£Ö»ÓÐÒ»¸öÀýÍ⣬¾ÍÊÇÅÉÉúÀàµÄ¶ÔÏóÓë»ùÀàÊǼæÈݵģ¨×¢Ò⣺·´¹ýÀ´²»³ÉÁ¢£©¡£
¡¤C++£ºÔÚC++ÖУ¬×ÓÀà¼æÈÝÐÔ¹æÔòÖ»ÊÊÓÃÓÚÖ¸ÕëºÍÒýÓ㬶ÔÆÕͨ¶ÔÏóÔò²»ÊÊÓá£ÊÂʵÉÏ£¬²»Í¬µÄ¶ÔÏóÔÚËùÕ¼ÓõÄÄڴ治ͬ£¬ËùÒÔÄã²»Äܽ«ÏàͬµÄÄÚ´æ·ÖÅä¸ø²»Í¬µÄ¶ÔÏó¡£
¡¤OP£º×ÓÀà¼æÈÝÐÔÊÊÓÃÓÚËùÓжÔÏó£¬ÒòΪOP²ÉÓÃÁ˶ÔÏó²Î¿¼Ä£ÐÍ¡£´ËÍ⣬ËùÓжÔÏó¶¼ÓëTObjectÀàÐͼæÈÝ¡£
¡¤Java£ºJavaµÄÇé¿öÓëOPÍêÈ«Ïàͬ¡£
¡¤×¢Ò⣺¶à̬ÐÔ¡£ÈçͬÏÂÒ»½Ú½«ÒªÃèÊöµÄ£¬×ÓÀà¼æÈÝÐÔ¶ÔÓÚʵÏÖºóÆڰ󶨺Ͷà̬ÐÔÊÇÊ®·ÖÖØÒªµÄ¡£
ºóÆڰ󶨣¨¼°¶à̬ÐÔ£©
¡¤ÌØÐÔÃèÊö£ºµ±¼Ì³ÐÁ´Öв»Í¬µÄÀà·Ö±ðÖØж¨ÒåÁËËüÃÇ»ùÀàµÄ·½·¨£¬ÄÇôÈç¹ûÄܹ»Í¨¹ýÒ»¸ö¼æÈÝÕâЩÀàµÄ¶ÔÏ󣨸Ðл×ÓÀà¼æÈÝÐÔ£©µ÷ÓúÏÊʵÄÀàµÄ·½·¨£¬½«ÊÇÊ®·ÖÓÐÓõġ£ÒªÍê³ÉÕâ¸ö¹¤×÷£¬±àÒëÆ÷ÐèÒªÖ§³ÖºóÆڰ󶨣¬Ëü½«²»²úÉúÒ»¸öÌض¨µÄº¯Êýµ÷Ó㬶øÊÇÔÚÔËÐÐÆÚ¾ö¶¨Á˶ÔÏóµÄÕæÕýÀàÐͺ󣬲ŽøÐк¯Êýµ÷Óá£
¡¤C++£ºÔÚC++ÖУ¬ºóÆÚ°ó¶¨Ö»Ó¦ÓÃÓÚÐéÄâ·½·¨£¨ÔÚµ÷ÓÃËÙ¶ÈÉÏ»áÓÐËù¼õÂý£©¡£Ò»¸öÔÚ»ùÀàÖж¨ÒåµÄÐéÄâ·½·¨½«ÔÚËü±»ÖØж¨Òåʱ±£³ÖÕâÖÖÌØÐÔ£¨µ±È»·½·¨µÄÉùÃ÷±ØÐëÍêÈ«Æ¥Å䣩¡£Ò»°ãÇé¿ö£¬·ÇÐéÄâ·½·¨²¢²»ÔÊÐíºóÆڰ󶨡£
¡¤OP£ºÔÚObject PascalÖУ¬ºóÆÚ°ó¶¨Í¨¹ý¹Ø¼ü×Övirtual