ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

OOPÓïÑÔ¼¼Êõ±È½Ï£ºJava£¬C++£¬Object Pascal(¶þ)
2014-11-24 01:15:22 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:451´Î
Tags£ºOOP ÓïÑÔ ¼¼Êõ ±È½Ï Java Object Pascal
ÔÚһЩ¾Ö²¿Êý¾ÝÉϵIJÙ×÷¡£


¡¤C++£ºÏÂÃæÊÇÒ»¸ö¼òµ¥ÀàµÄC++¶¨Ò壺


class Date {
private:
int dd;
int mm;
int yy;
public:
void Init(int d, int m, int y);
int Day();
int Month();
int Year();
};


ÏÂÃæÊÇÆäÖÐÒ»¸ö·½·¨µÄ¶¨Ò壺
void Date::Init(int d, int m, int y)
{
dd = d;
mm = m;
yy = y;
}


¡¤Java£ºJavaµÄÓï·¨ÓëC++Óï·¨ÀàËÆ£º
class Date {
int dd = 1;
int mm = 1;
int yy = 1;
publlic void Init(int d, int m, int y) {
dd = d; mm = m; yy = y; }
public int Day () { return dd; }
public int Month () { return mm; }
public int Year () { return yy; }
}


Á½ÕßÖ®¼ä×î´óµÄ²»Í¬ÔÚÓÚJavaµÄ·½·¨´úÂëÔÚÉùÃ÷µÄͬʱ¾Í¶¨ÒåÁË£¨ÓëC++²»Í¬£¬Õâ²¢²»±íʾÕâЩº¯ÊýÊÇÄÚÁªº¯Êý£©£¬²¢ÇÒ¿ÉÒÔͬʱ³õʼ»¯ÀàµÄÊý¾Ý³ÉÔ±¡£ÊÂʵÉÏ£¬Èç¹ûÄãûÓгõʼ»¯ÕâЩÊý¾Ý³ÉÔ±£¬Java»á½«ËùÓÐÊý¾Ý³ÉÔ±³õʼ»¯ÎªÄ¬ÈÏÖµ¡£


¡¤OP£ºÔÚObject PascalµÄÀàÉùÃ÷Óï·¨¸ü½Ó½üC++Óï·¨£¬µ«ÊÇÈÔÓкܶàÇø±ð£º


type
Date = class
private
dd, mm, yy: Integer;
public
procedure Init (d, m, y: Integer);
function Month: Integer;
function Day: Integer;
function Year: Integer;
end;


procedure Date.Init (d, m, y: Integer);
begin
dd := d;
mm := m;
yy := y;
end;


function Date.Day: Integer;
begin
Result := dd;
end;


Äã¿ÉÄÜ×¢Ò⵽һЩÓï·¨ÉϵÄÇø±ð£º¶¨Òå·½·¨Ê¹ÓÃÁ½¸ö²»Í¬µÄ¹Ø¼ü×ÖfunctionºÍprocedure£¬Ã»ÓвÎÊýµÄ·½·¨²»Ê¹ÓÃÔ²À¨ºÅ£¬·½·¨ÔÚÀඨÒåÖÐÉùÃ÷£¬Ö®ºóÔÙ×÷¶¨Ò壨¾ÍÏñC++Öо­³£Óöµ½µÄÇé¿öÒ»Ñù£©¡£×¢Ò⣬PascalʹÓõãÔËËã·û£¬¶øC++ʹÓÃ×÷ÓÃÓò²Ù×÷·û£¨::£©¡£


¡¤×¢Ò⣺·ÃÎʵ±Ç°¶ÔÏó¡£OOPÓïÑԵķ½·¨ÓëÈ«¾Öº¯Êý²»Í¬£¬Ëü°üº¬ÁËÒ»¸öÒþ²Ø²ÎÊý¡ª¡ªÒ»¸öÖ¸Ïòµ±Ç°±»²Ù×÷¶ÔÏóµÄÖ¸Õë»òÒýÓá£ÔÚ²»Í¬µÄÓïÑÔÖУ¬Õâ¸ö²ÎÊýµÄÃû×Ö²»Í¬£¬ÔÚC++ºÍJavaÖÐÊÇthis£¬ÔÚObject PascalÖÐÊÇself¡£


¹¹Ô캯Êý£¨constructor£©
¡¤ÌØÐÔÃèÊö£ºÉÏÎÄËùÊöµÄÀàʵÔÚÌ«¼òµ¥ÁË¡£ÎªÁ˽â¾ö¶ÔÏó³õʼ»¯µÄÎÊÌ⣬ÎÒÃÇҪΪÀàÔö¼ÓÒ»¸ö¹¹Ô캯Êý£¬ÕâÒ²ÊǸĽøÀàËùÐèÂõ³öµÄµÚÒ»²½¡£


¡¤C++£ºÔÚC++ÒÔ¼°JavaÖУ¬¹¹Ô캯ÊýºÍÀà¾ßÓÐÏàͬµÄÃû×Ö¡£Èç¹ûÄãûÓж¨Òå¹¹Ô캯Êý£¬±àÒëÆ÷»á×Ô¶¯ÎªÀàÌí¼ÓÒ»¸öĬÈϹ¹Ô캯Êý¡£ÔÚÕâÁ½ÖÖÓïÑÔÖУ¬ÄãµÄÀà¿ÉÒÔ¾ßÓжà¸ö¹¹Ô캯Êý£¬ÕâÒª¸Ðл¡°·½·¨ÖØÔØ¡±¡£


¡¤Java£ºÔÚJavaÖУ¬ËäÈ»¹¹Ô캯ÊýÒ²±»³ÆΪ³õʼ»¯º¯Êý£¨initializer£©£¬µ«ÓëC++µÄ¹¹Ô캯ÊýÔÚʹÓÃÉÏûÓÐʲôÇø±ð¡£ÐèҪעÒâµÄÊÇ£¬JavaÐéÄâ»ú¸ºÔð´´½¨¶ÔÏ󣬶ø¹¹Ô캯ÊýÖ»¶Ô´´½¨µÄ¶ÔÏó½øÐгõʼ»¯£¨Object PascalÒ²ÓÐÀàËƵÄÇé¿ö£©¡£


¡¤OP£ºÔÚObject PascalÖУ¬¹¹Ô캯ÊýÒÔÒ»¸öÌØÊâµÄ¹Ø¼ü×Ö¡ª¡ªconstructorÉùÃ÷¡£ÔÚOPÖÐûÓз½·¨ÖØÔØ£¨£¿£¬Ã»ÓÐÂ𣿡ª¡ªÒëÕߣ©£¬²»¹ýÒòΪ¹¹Ô캯Êý£¨ÔÚDelphiµÄÊéÖÐͨ³£³ÉΪ¹¹ÔìÆ÷¡ª¡ªÒëÕߣ©µÄÃû×Ö¿ÉÒÔÈÎÒâÖ¸¶¨£¬ËùÒÔÄã¿ÉÒÔÌṩ¼¸¸öÃû×Ö²»Í¬µÄ¹¹Ô캯Êý¡£OPÖÐÿ¸öÀ඼ÓÐĬÈϵĹ¹Ô캯Êý¡°Create¡±£¬³ý·ÇÄãÓÃÃû×ÖÏàͬ¶ø²ÎÊý²»Í¬µÄ¹¹Ô캯Êý½«Æ串¸Ç¡£Õâ¸ö¹¹Ô캯Êý¼Ì³Ð×ÔÒ»¸öͨÓûùÀ࣬ÏÂÃæÎÒÃÇ»áÌáµ½¡£


Îö¹¹º¯ÊýºÍfinalize()
¡¤ÌØÐÔÃèÊö£ºÎö¹¹º¯Êý°çÑÝÁ˹¹Ô캯Êý·´ÃæµÄ½ÇÉ«£¬Í¨³£ÔÚ¶ÔÏóÏú»Ùʱ±»µ÷Óá£Èç¹û˵´ó¶àÊýÀ඼ÐèÒª¹¹Ô캯Êý£¬ÄÇôֻÓкÜÉÙµÄÀàÐèÒªÎö¹¹º¯Êý¡£Ò»¸öÎö¹¹º¯ÊýµÄ»ù±¾¹¦ÄܾÍÊÇÊͷŹ¹Ô캯Êý£¨ÒÔ¼°¶ÔÏóÉú´æÆÚÖеÄÆäËü·½·¨£©·ÖÅäµÄ×ÊÔ´¡£ÕâЩ×ÊÔ´°üÀ¨ÄÚ´æ¡¢Îļþ¡¢Êý¾Ý¿â±í¡¢Windows¾ä±ú£¬µÈµÈ¡£


¡¤C++£ºC++µÄÎö¹¹º¯ÊýÔÚ¶ÔÏ󳬳ö×÷ÓÃÓòʱ£¬»òÕßɾ³ý¶¯Ì¬´´½¨¶ÔÏóʱ×Ô¶¯±»µ÷Óá£Ã¿¸öÀàÖ»ÄÜÓÉÒ»¸öÎö¹¹º¯Êý¡£


¡¤OP£ºObject PascalµÄÎö¹¹º¯ÊýÓëC++µÄÎö¹¹º¯ÊýÀàËÆ¡£Object PascalʹÓñê×¼ÐéÄâÎö¹¹º¯Êý£¬³ÆΪ¡°Destroy¡±¡£Îö¹¹º¯Êýͨ¹ý±ê×¼¡°Free¡±·½·¨µ÷Óá£ÒòΪËùÓжÔÏó¶¼ÊǶ¯Ì¬´´½¨µÄ£¬ËùÒÔÄã»òÕ߶ÔÏóµÄÊôÖ÷±ØÐëµ÷ÓöÔÏóµÄÎö¹¹º¯Êý£¬ÒÔÊÍ·Å×ÊÔ´¡£ÀíÂÛÉÏÄã¿ÉÒÔ¶¨Òå¶à¸öÎö¹¹º¯Êý£¬²»¹ýÖ»ÓÐÄãÊÖ¶¯µ÷ÓÃÎö¹¹º¯Êý²ÅÓÐЩ¼ÛÖµ£¨Ã»ÓÐʲôÊÇ×Ô¶¯Íê³ÉµÄ£©¡£


¡¤Java£ºJavaûÓÐÎö¹¹º¯Êý¡£Ã»ÓÐÒýÓõĶÔÏ󽫱»ËéƬ»ØÊÕ³ÌÐòÔÚºǫ́Ïú»Ù¡£ÔÚÏú»Ù¶ÔÏó֮ǰ£¬ËéƬ»ØÊÕ³ÌÐòµ÷ÓÃfinalize()·½·¨¡£µ«ÊÇ£¬²¢Ã»ÓÐʲô±£Ö¤Õâ¸öº¯ÊýÕæÕý±»µ÷Óã¨ÖÁÉÙÔÚJava 1.0ÖÐʱÊÇÕâÑù£©¡£Òò´Ë£¬Èç¹ûÄãÐèÒªÊÍ·Å×ÊÔ´£¬Äã¾ÍÒª¶¨ÒåÒ»¸ö·½·¨£¬²¢±£Ö¤Ëü±»µ÷Óá£


Àà·â×°£¨PrivateºÍPublic£©
¡¤ÌØÐÔÃèÊö£ºÕâÈýÖÖÓïÑÔÌṩÁËÏàͬµÄÈýÖÖ·ÃÎÊÏÞ¶¨·ûÀ´Ìṩ²»Í¬¼¶±ðµÄÀà·â×°£ºpublic£¬protectedºÍprivate¡£publicÒâζ×ŶÔÓÚÈκÎÀ඼ÊǿɼûµÄ£¬protectedÒâζ×ŶÔÓÚÅÉÉúÀà¿É¼û£¬privateÒâζ×ÅûÓÐÍⲿ¿É¼ûÐÔ¡£µ«ÊÇÈýÖÖÓïÑÔµÄʵÏÖϸ½Ú²¢²»Ïàͬ¡£


¡¤C++£ºÔÚC++ÖУ¬Äã¿ÉÒÔʹÓÃfriend¹Ø¼ü×ÖÌø³öÀà·â×°¡£ÓÉclass¹Ø¼ü×ÖÉùÃ÷µÄÀàĬÈϿɼûÐÔÊÇprivate£¬ÓÉstruct¹Ø¼ü×ÖÉùÃ÷µÄÀàĬÈϿɼûÐÔÊÇpublic¡£


¡¤OP£ºÔÚObject PascalÖУ¬privateºÍprotected¹Ø¼ü×ÖÖ»¶ÔÔÚ²»Í¬µ¥ÔªÖеÄÀàÓÐ×÷Óá£ÔÚͬһµ¥Ôª£¨Ô´´úÂëÎļþ£©ÉùÃ÷µÄÀà±Ë´ËÖ®¼ä¿ÉÒÔ×ÔÓÉ·ÃÎÊ¡£Delphi»¹ÓÐÁ½¸öÌØÊâµÄ·ÃÎÊÏÞ¶¨·û£ºpublishedºÍautomated¡£published½«ÎªÀàµÄ³ÉÔ±½¨Á¢RTTI£¨ÔËÐÐÆÚÀàÐÍÐÅÏ¢£©£¬automatedÓÃÓÚOLE×Ô¶¯»¯½Ó¿Ú£¨ÒÑ·ÏÆú¡ª¡ªÒëÕߣ©¡£


¡¤Java£ºÔÚJavaÖУ¬Ò»¸öÓï·¨ÉϵÄÇø±ðÊÇÿһ¸öÀà³ÉÔ±¶¼ÒªÓ÷ÃÎÊÏÞ¶¨·ûÉùÃ÷¡£ÁíÒ»¸öʵÖÊÉϵÄÇø±ðÊÇ£¬JavaÖÐÀà³ÉԱĬÈÏ·ÃÎÊÏÞ¶¨·ûÊÇfriendly£¬Òò´Ë¶Ôͬһ¸ö°ü£¨Ô´´úÂëÎļþ£¬ÀàËÆÓÚOPµÄµ¥Ôª£©ÖеÄËùÓÐÀ඼ÊǿɼûµÄ¡£Í¬Ñù£¬protected¹Ø¼ü×Ö±íʾÀà³ÉÔ±¶ÔÅÉÉúÀà¿É¼û£¬Í¬Ê±Ò²¶Ôͬһ¸ö°üÖеÄÆäËüÀà¿É¼û£¬¶øprivate protected²Å¶ÔÓ¦ÓÚC++ÖеÄprotected¡£


Îļþ¡¢µ¥ÔªºÍ°ü
¡¤ÌØÐÔÃèÊö£ºÕâÈýÖÖÓïÑÔµÄÒ»¸öÖØÒªÇø±ðÊǶÔÔ´´úÂëÎļþµÄ×éÖ¯¹ÜÀí¡£ËüÃǶ¼Ê¹ÓÃÎļþ×÷Ϊ´¢´æÔ´´úÂëµÄ±ê×¼»ú¹¹£¨ÓëÆäËüOOPÓïÑÔÈçSmalltalk²»Í¬£©£¬²»Í¬µÄÊÇC++µÄ±àÒëÆ÷²¢²»ÕæÕýÁ˽âÎļþ£¬¶øOPºÍJavaÔò²»Í¬£¬ËüÃÇʹÓÃÄ£¿é¸ÅÄîÀ´¹ÜÀíÎļþ£¬ËäÈ»¸÷×ÔµÄÃû×Ö²»Ì«Ò»Ñù¡£


¡¤C++£ºÔÚC++ÖУ¬³ÌÐòÔ±ÃÇÒ»°ã°ÑÀඨÒå·ÅÔÚÍ·ÎļþÖУ¬¶ø°Ñ·½·¨ÊµÏÖ·ÅÈë¶ÀÁ¢µÄ´úÂëÎļþ¡£Í¨³£ÕâÁ½¸öÎļþ»á¾ßÓÐÏàͬµÄÎļþÃûºÍ²»Í¬µÄÀ©Õ¹Ãû¡£Ò»¸ö±àÒëµ¥ÔªÓ¦¸Ã°üÀ¨Ëü×Ô¼ºµÄÉùÃ÷Îļþ¼°Æä´úÂëËùÉæ¼°µÄÀ༰º¯ÊýµÄÉùÃ÷Îļþ¡£µ«Õâ½ö½öÊǹßÀý£¬±àÒëÆ÷²¢²»Ç¿ÆÈ

Ê×Ò³ ÉÏÒ»Ò³ 1 2 3 4 5 ÏÂÒ»Ò³ βҳ 2/5/5
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºDisigenPatternÉè¼Æģʽ ÏÂһƪ£ºÃæÊÔ¾­Àú(20):ǧÏ𻥶¯Ã¨ÆË

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿