Java±à³Ì˼ÏëµÚÈý°æժ¼
Chap1 ¶ÔÏó¼ò½é
1.³éÏóµÄ¹ý³Ì
Alan Kay×ܽáÁËSmalltalkµÄÎåÏî»ù±¾ÌØÕ÷¡£ÕâЩÌØÕ÷´ú±íÁË´¿µÄÃæÏò¶ÔÏóµÄ±à³Ì·½·¨£º
(1).ÍòÎï½Ô¶ÔÏó¡£½«¶ÔÏóÏë³ÉÒ»ÖÖÌØÊâµÄ±äÁ¿£»Ëü´æ´¢Êý¾Ý£¬¶øÇÒ»¹¿ÉÒÔÈÃÄã“ÌáÒªÇ󔣬ÃüÁîËü½øÐÐijЩ²Ù×÷¡£´ÓÀíÂÛÉϽ²£¬Äã¿ÉÒÔ°ÑËùÓдý½â¾öµÄÎÊÌâÖеĸÅÄîÐÔ×é¼þ£¨¹·£¬½¨Öþ£¬·þÎñµÈ£©¶¼±êʶ³É³ÌÐòÀïµÄ¶ÔÏó¡£
(2).³ÌÐò¾ÍÊÇÒ»×éÏ໥֮¼ä´«µÝÏûÏ¢µÄ¶ÔÏó¡£ÄãÖ»ÒªÏòÄǸö¶ÔÏó“·¢Ò»¸öÏûÏ¢”£¬¾ÍÄÜÏòËüÌá³öÒªÇ󡣸üÈ·ÇеÄ˵£¬Äã¿ÉÒÔÕâÑùÈÏΪ£¬ÏûÏ¢Êǵ÷ÓÃרÊôij¸ö¶ÔÏóµÄ·½·¨µÄÇëÇó¡£
(3).ÿ¸ö¶ÔÏó¶¼ÀûÓñðµÄ¶ÔÏóÀ´×齨Ëü×Ô¼ºµÄ¼ÇÒä¡£»»ÑÔÖ®£¬Äãͨ¹ý½«ÒÑÓеĶÔÏó´ò³ÉÒ»¸ö°ü£¬À´´´½¨ÐµĶÔÏó¡£ÓÉ´Ë£¬Äã¿ÉÒÔ½«³ÌÐòµÄ¸´ÔÓÐÔ£¬Òþ²ØÔÚ¶ÔÏóµÄ¼òµ¥ÐÔ֮ϡ£
(4).¶ÔÏó¶¼ÓÐÀàÐÍ¡£ÈκζÔÏó¶¼ÊÇij¸öÀàµÄʵÀý(instance of a class)¡£ÓÃÒÔÇø·ÖÀàµÄ×îÍ»³öµÄÌصã¾ÍÊÇ“ÄãÄÜ´«¸øËüʲôÏûÏ¢£¿”
(5).ËùÓÐÊôÓÚͬһÀàÐ͵ĶÔÏóÄܽÓÊÜÏàͬµÄÏûÏ¢¡£ÕâÖÖ»¥»»ÐÔ(substitutability)ÊÇOOP×îÇ¿´óµÄ¹¦ÄÜÖ®Ò»¡£
Booch»¹¸ø¶ÔÏóÏÂÁ˸ö¸üΪ¼ò½àµÄ¶¨Ò壺
¶ÔÏóÓÐ״̬£¬ÐÐΪºÍ±êʶ¡£
Õâ¾ÍÊÇ˵£¬¶ÔÏó¿ÉÒÔÓÐÄÚ²¿Êý¾Ý£¨×´Ì¬£©£¬Óз½·¨£¨Òò¶ø²úÉúÁËÐÐΪ£©£¬ÒÔ¼°Ã¿¸ö¶ÔÏó¶¼ÄÜͬÆäËü¶ÔÏóÇø·Ö¿ªÀ´££¾ßÌå¶øÑÔ£¬Ã¿¸ö¶ÔÏóÔÚÄÚ´æÀﶼÓÐΨһµÄµØÖ·¡£
Õâ¾ä»°»òÐíÓеãÌ«¹ýÁË¡£ÒòΪ¶ÔÏó»¹ÄÜ´æÔÚÓÚÁíһ̨¼°ÆäÉÏÒÔ¼°²»Í¬µÄÄÚ´æ¿Õ¼äÖУ¬´ËÍ⻹Äܱ£´æÔÚÓ²ÅÌÉÏ¡£ÔÚÕâÖÖÇé¿öÏ£¬¶ÔÏóµÄÉí·Ý¾Í²»ÄÜÓÃÄÚ´æµØÖ·£¬¶ø±ØÐëÒªÓñðµÄ·½·¨À´È·¶¨¡£
2.¿Éƾ½è¶à̬ÐÔÏ໥Ìæ»»µÄ¶ÔÏó
·ÇOOPµÄ±àÒëÆ÷µÄ×ö·¨³ÆΪǰ°ó¶¨(early binding)¡£±àÒëÆ÷»á²úÉúÄǸöÃû×ֵĺ¯ÊýµÄµ÷Ó㬶øÁ¬½ÓÆ÷¸ºÔð½«Õâ¸öµ÷ÓýâÎö³ÉÐëÖ´ÐеĴúÂëµÄ¾ø¶ÔµØÖ·¡£ÔÚOOPÖУ¬²»µ½ÔËÐеÄʱºò£¬³ÌÐòû·¨È·¶¨´úÂëµÄµØÖ·£¬ËùÒÔÏò·ºÐͶÔÏó·¢ËÍÒ»¸öÏûÏ¢µÄʱºò£¬¾
Ïà¹ØÎĵµ£º
typedef struct
{
BYTE baOrigMDN[8]; /* Ö÷½ÐÓû§MDN */
BYTE baDestMDN[8]; /* ±»½ÐÓû§MDN */
BYTE bOrigIsVIP;   ......
תÔصØÖ·£ºhttp://www.javaeye.com/topic/40489
´ÓJDK 1.4¿ªÊ¼£¬JavaµÄ±ê×¼¿âÖоͰüº¬ÁËNIO£¬¼´ËùνµÄ“New IO”¡£ÆäÖÐ×îÖØÒªµÄ¹¦ÄܾÍÊÇÌṩÁË“·Ç×èÈû”µÄIO£¬µ±È»°üÀ¨ÁËSocket¡£NonBlockingµÄIO¾ÍÊǶÔselect(Unixƽ̨ÏÂ)ÒÔ¼° WaitForMultipleObjects(Windowsƽ̨)µÄ·â×°£¬ÌṩÁ˸ßÐÔÄÜ¡¢Ò×ÉìËõµÄ·þÎ ......
JavaÈÝÆ÷Àà¿âÖ÷Òª°üº¬Á½ÖÖÀàÐÍCollection(List,Set,Queue)ºÍMap£¬ËüÃǵÄÇø±ðÔÚÓÚÿ¸ö²Û±£´æµÄÔªËظöÊý£¬CollectionÖ»±£´æÒ»¸ö£¬¶øMap±£´æ¼üºÍÖµ¡£
1.µ±Ê¹ÓÃArrays.asList()ʱ£¬Ëü»áÔÚʹÓÃÒ»¸öfinalµÄÊý×é×÷Ϊµ×²ãʵÏÖ£¬Òò´ËÈκÎÉè¼Æµ½¸ü¸ÄÆ䳤¶È´óСµÄ²Ù×÷¶¼½«Å×UnsuportedExceptioÒì³£¡£
2.finalµÄÊý×飬²»Äܸıä´óС£¬µ ......
package com.ftp;
import com.enterprisedt.net.ftp.FTPClient;
import com.enterprisedt.net.ftp.FTPFile;
import com.enterprisedt.net.ftp.FTPMessageCollector;
import com.enterprisedt.net.ftp.FTPTransferType;
import com.enterprisedt.net.ftp.FTPConnectMode;
import com.enterprisedt.util.debug.Level;
......