ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>97精品国产,国产在线精品免费,国内视频精品http://www.aygfsteel.com/shisanfeng/category/30562.html闻道有先后,术业有专攻,如是而已zh-cnSat, 31 May 2008 06:02:15 GMTSat, 31 May 2008 06:02:15 GMT60云计½Ž—(Cloud ComputingåQŒCCåQ?/title><link>http://www.aygfsteel.com/shisanfeng/articles/204000.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Fri, 30 May 2008 01:17:00 GMT</pubDate><guid>http://www.aygfsteel.com/shisanfeng/articles/204000.html</guid><wfw:comment>http://www.aygfsteel.com/shisanfeng/comments/204000.html</wfw:comment><comments>http://www.aygfsteel.com/shisanfeng/articles/204000.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/shisanfeng/comments/commentRss/204000.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/shisanfeng/services/trackbacks/204000.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br /> <strong>基本原理</strong><br /> <br />   云计½Ž—(Cloud ComputingåQ‰æ˜¯åˆ†å¸ƒå¼å¤„理(Distributed ComputingåQ‰ã€åƈ行处理(Parallel ComputingåQ‰å’Œ¾|‘格计算åQˆGrid ComputingåQ‰çš„发展åQŒæˆ–者说是这些计½Ž—机¿U‘学概念的商业实现ã€?br />   云计½Ž—的基本原理是,通过使计½Ž—分布在大量的分布式计算æœÞZ¸ŠåQŒè€Œéžæœ¬åœ°è®¡ç®—机或˜qœç¨‹æœåС噍䏭åQŒä¼ä¸šæ•°æ®ä¸­å¿ƒçš„˜qè¡Œž®†æ›´ä¸Žäº’è”ç½‘ç›æ€¼¼ã€‚这使得企业能够ž®†èµ„源切换到需要的应用上,æ ÒŽ(gu¨©)®éœ€æ±‚访问计½Ž—机和存储系¾lŸã€?br />   ˜q™å¯æ˜¯ä¸€¿Ué©å‘½æ€§çš„举措åQŒæ‰“个比方,˜q™å°±å¥½æ¯”是从古老的单台发电(sh¨´)机模式è{向了ç”?sh¨´)厂集中供ç”?sh¨´)的模式。它意味着计算能力也可以作ä¸ÞZ¸€¿Uå•†å“è¿›è¡Œæµé€šï¼Œž®±åƒç…¤æ°”、水ç”?sh¨´)ä¸€æ øP¼Œå–用方便åQŒè´¹ç”¨ä½Žå»‰ï¼Œæœ€å¤§çš„不同在于åQŒå®ƒæ˜¯é€šè¿‡äº’联¾|‘进行传输的ã€?br />   云计½Ž—的蓝图已经å‘ég¹‹‹Æ²å‡ºåQšåœ¨æœªæ¥åQŒåªéœ€è¦ä¸€å°ç¬”记本或者一个手机,ž®±å¯ä»¥é€šè¿‡¾|‘络服务来实现我们需要的一切,甚至包括­‘…çñ”计算˜q™æ ·çš„ä“Q务。从˜q™ä¸ªè§’度而言åQŒæœ€¾lˆç”¨æˆäh‰æ˜¯äº‘计算的真正拥有者ã€?br />   云计½Ž—的应用包含˜q™æ ·çš„一¿Uæ€æƒ³åQŒæŠŠåŠ›é‡è”åˆèµäh¥åQŒç»™å…¶ä¸­çš„æ¯ä¸€ä¸ªæˆå‘˜ä‹É用ã€?br /> <br /> <strong>“云计½Ž?#8221;时代</strong><br /> <br />   目前åQŒPC 依然是我们日常工作生‹zÖM¸­çš„æ ¸å¿ƒå·¥å…øP¼Œæˆ‘们ç”?PC 处理文档、存储资料,通过ç”?sh¨´)子邮äšgæˆ?U 盘与他äh分äín信息。但如果 PC ¼‹¬ç›˜åäº†åQŒæˆ‘ä»¬ä¼šå› äØ“èµ„æ–™ä¸¢å¤±è€ŒæŸæ‰‹æ— ½{–ã€?br />   而在“云计½Ž?#8221;时代åQ?#8220;äº?#8221;会替我们做存储和计算的工作ã€?#8220;äº?#8221;ž®±æ˜¯è®¡ç®—机群åQŒæ¯ä¸€¾Ÿ¤åŒ…括了几十万台、甚至上百万台计½Ž—机ã€?#8220;äº?#8221;的好处还在于åQŒå…¶ä¸­çš„计算机可以随时更斎ͼŒä¿è¯“äº?#8221;长生不老ã€?br />   届时åQŒæˆ‘们只需要一台能上网的电(sh¨´)脑,不需兛_¿ƒå­˜å‚¨æˆ–计½Ž—发生在哪朵“äº?#8221;上,但一旦有需要,我们可以在ä“Q何地点用ä»ÖM½•讑֤‡åQŒå¦‚ç”?sh¨´)脑、手机等åQŒå¿«é€Ÿåœ°è®¡ç®—和找到这些资料。我们再也不用担心资料丢失ã€?br />   “云计½Ž?#8221;ž®×ƒ»¿ä½?j¨©ng)银行的自动取款机(ATMåQ‰ï¼Œæˆ‘们出门再也不用随èín携带大量现钞åQŒå¯ä»¥æ ¹æ®éœ€è¦éšæ—¶å–用ã€?br />   PC æ—¶ä»£å¥½æ¯”æ¯ä¸ªäºø™¦ç”¨ç”µ(sh¨´)åQŒéƒ½å¾—自å·Þp´­ä¹°å‘甉|œºåQ›è€?#8220;云计½Ž?#8221;时代åQŒæ¯ä¸ªäh不必拥有发电(sh¨´)机,直接从大型发ç”?sh¨´)厂买ç”?sh¨´)ž®±å¥½ã€?br />   “云计½Ž?#8221;其实òq¶ä¸æ˜¯ä¸€ä¸ªæ–°æ¦‚念åQ?#8220;云计½Ž?#8221;之前åQŒè¿˜æœ?#8220;¾|‘格计算”åQˆGrid ComputingåQ‰ç­‰½{‰ï¼Œç†å¿µéƒ½æ˜¯å…³äºŽè®¡ç®—机如何协同发挥作用ã€?br />   云计½Ž—是一¿Uæ–°å…´çš„å…׃ín基础架构的方法,它可以将巨大的系¾lŸæ± ˜qžæŽ¥åœ¨ä¸€èµ·ä»¥æä¾›å„种 IT 服务。很多因素推动了对这¾cÈŽ¯å¢ƒçš„éœ€æ±‚ï¼Œå…¶ä¸­åŒ…æ‹¬˜qžæŽ¥è®‘Ö¤‡ã€å®žæ—¶æ•°æ®æµã€?SOA 的采用以及搜索、开攑֍ä½œã€ç¤¾ä¼šç½‘¾lœå’Œ¿UÕdŠ¨å•†åŠ¡½{‰è¿™æ ïLš„ Web 2.0 应用的急剧增长ã€?br />   另外åQŒæ•°å­—元器äšg性能的提升也使IT环境的规模大òq…度提高åQŒä»Žè€Œè¿›ä¸€æ­¥åŠ å¼ÞZº†å¯¹ä¸€ä¸ªç”±¾lŸä¸€çš„云˜q›è¡Œ½Ž¡ç†çš„需求ã€?br />   “云计½Ž?Always-On”讑֤‡è¢«è¯„ä¸?#8220;25 òq´æ¥æœ€å…·åª„响力的十å¤?IT 技术组å?#8221;ã€?br /> <br />   云计½Ž—正在成ä¸ÞZ¸€ä¸ªå¤§ä¼—化的词语。但是,问题是似乎每个äh对于云计½Ž—的理解各不相同。作ä¸ÞZ¸€ä¸ªå¯¹äº’联¾|‘的比喻åQ?#8220;äº?#8221;是很å®ÒŽ(gu¨©)˜“理解的。但是一旦同“计算”联系èµäh¥åQŒå®ƒçš„æ„ä¹‰å°±æ‰©å±•了,而且开始变得模¾pŠè“v来。有些分析师和公司把云计½Ž—ä»…ä»…å®šä¹‰äØ“è®¡ç®—çš„å‡¾U§ç‰ˆåQŒåŸºæœ¬ä¸Šž®±æ˜¯äº’联¾|‘上提供的众多虚拟服务器。另外一些ähæŠŠäº‘è®¡ç®—å®šä¹‰çš„æ›´åŠ å®½æ³›ï¼Œä»–ä»¬è®¤äØ“ç”¨æˆ·åœ¨é˜²ç«å¢™ä¿æŠ¤ä¹‹å¤–æ¶ˆè´¹çš„ä“Q何事物都处于“äº?#8221;之中ã€?br />   云计½Ž—被äºÞZ»¬å…Ïx³¨æ˜¯åœ¨äºÞZ»¬è€ƒè™‘ IT 业到底需要什么之后,äºÞZ»¬éœ€è¦æ‰¾åˆîC¸€¿UåŠžæ³•èƒ½å¤Ÿåœ¨ä¸å¢žåŠ æ–°çš„æŠ•èµ„ï¼Œæ–°çš„äººåŠ›å’Œæ–°çš„èÊY件的情况下增加互联网的能力和定w‡ã€‚而云计算正好提供了这¿Uå¯èƒ½ã€?br /> <br /> <strong>云计½Ž—åÅžå¼?/strong><br /> <br />   <strong>01. SaaSåQˆèÊY件即服务åQ?/strong><br />   ˜q™ç§¾cÕdž‹çš„云计算通过‹¹è§ˆå™¨æŠŠ½E‹åºä¼ ç»™æˆåƒä¸Šä¸‡çš„用戗÷€‚在用户çœég¸­çœ‹æ¥åQŒè¿™æ ·ä¼šçœåŽ»åœ¨æœåŠ¡å™¨å’ŒèÊY件授权上的开支;从供应商角度来看åQŒè¿™æ ·åªéœ€è¦ç»´æŒä¸€ä¸ªç¨‹åºå°±å¤Ÿäº†åQŒè¿™æ ¯‚ƒ½å¤Ÿå‡ž®‘成本。SaaS 在äh力资源管理程序和 ERP 中比较常用ã€?br />   <strong>02. 实用计算åQˆUtility ComputingåQ?/strong><br />   ˜q™ä¸ªä¸ÀL„å¾ˆæ—©ž®±æœ‰äº†ï¼Œä½†æ˜¯çŸ¥é“最˜q‘才在提供存储服务和虚拟服务器的公司中新生。这¿Uäº‘è®¡ç®—æ˜¯äØ“ IT 行业创造虚拟的数据中心使得其能够把内存、I/O 讑֤‡ã€å­˜å‚¨å’Œè®¡ç®—能力集中èµäh¥æˆäؓ一个虚拟的资源池来为整个网¾lœæä¾›æœåŠ¡ã€?br />   <strong>03. ¾|‘络服务</strong><br />   å?SaaS 关系密切åQŒç½‘¾lœæœåŠ¡æä¾›è€…ä»¬èƒ½å¤Ÿæä¾› API 让开发者能够开发更多基于互联网的应用,而不是提供单机程序ã€?br />   <strong>04. òq›_°åÏxœåŠ?/strong><br />   另一¿U?SaaSåQŒè¿™¿UåŞ式的云计½Ž—把开发环境作ä¸ÞZ¸€¿UæœåŠ¡æ¥æä¾›ã€‚ä½ å¯ä»¥ä½¿ç”¨ä¸­é—´å•†çš„è®‘Ö¤‡æ¥å¼€å‘自å·Þqš„½E‹åºòq‰™€šè¿‡äº’联¾|‘和其服务器传到用户手中ã€?br />   <strong>05. MSPåQˆç®¡ç†æœåŠ¡æä¾›å•†åQ?/strong><br />   最古老的云计½Ž—运用之一。这¿Uåº”用更多的是面å?IT è¡Œä¸šè€Œä¸æ˜¯ç»ˆç«¯ç”¨æˆøP¼Œå¸¸ç”¨äºŽé‚®ä»¶ç—…毒扫描、程序监控等½{‰ã€?br />   <strong>06. 商业服务òq›_°</strong><br />   SaaS å’?MSP çš„æØœåˆåº”ç”¨ï¼Œè¯¥ç±»äº‘è®¡½Ž—äØ“ç”¨æˆ·å’Œæä¾›å•†ä¹‹é—´çš„äº’åŠ¨æä¾›äº†ä¸€ä¸ªåã^台。比如用户个人开支管理系¾lŸï¼Œèƒ½å¤Ÿæ ÒŽ(gu¨©)®ç”¨æˆ·çš„设¾|®æ¥½Ž¡ç†å…¶å¼€æ”¯åƈ协调其订购的各种服务ã€?br />   <strong>07. 互联¾|‘æ•´å?/strong><br />   ž®†äº’联网上提供类似服务的公司整合èµäh¥åQŒä»¥ä¾¿ç”¨æˆ¯‚ƒ½å¤Ÿæ›´æ–¹ä¾¿çš„æ¯”较和选择自己的服务供应商ã€?br /> <br /> <strong>云计½Ž—特ç‚?/strong><br /> <br />   首先åQŒäº‘计算提供了最可靠、最安全的数据存储中心,用户不用再担心数据丢失、病毒入ä¾ëŠ­‰éºÈƒ¦ã€‚很多äh觉得数据只有保存在自å·Þqœ‹å¾—见、摸得着的电(sh¨´)脑里才最安全åQŒå…¶å®žä¸ç„¶ã€‚你的电(sh¨´)è„‘å¯èƒ½ä¼šå› äØ“è‡ªå·±ä¸å°å¿ƒè€Œè¢«æŸååQŒæˆ–者被病毒æ”Õd‡»åQŒå¯¼è‡´ç¡¬ç›˜ä¸Šçš„æ•°æ®æ— æ³•恢复,而有æœÞZ¼šæŽ¥è§¦ä½ çš„ç”?sh¨´)脑的不法之徒则可能利用各种æœÞZ¼š½Hƒå–你的数据。此前蘪动一时的“艳照é—?#8221;事äšgæ®æŠ¥é“ä¸ä¹Ÿæ˜¯å› äØ“ç”?sh¨´)脑送修而造成个äh数据外泄的吗åQ?br />   反之åQŒå½“你的文档保存在类ä¼?Google Docs 的网¾lœæœåŠ¡ä¸ŠåQŒå½“你把自己的照片上传到¾cÖM¼¼ Google Picasa Web 的网¾lœç›¸å†Œé‡ŒåQŒä½ ž®±å†ä¹Ÿä¸ç”¨æ‹…心数据的丢失或损坏。因为在“äº?#8221;的另一端,有全世界最专业的团队来帮你½Ž¡ç†ä¿¡æ¯åQŒæœ‰å…¨ä¸–界最先进的数据中心来帮你保存数据。同æ—Óž¼Œä¸¥æ ¼çš„æƒé™ç®¡ç†ç­–略可以帮助你攑ֿƒåœîC¸Žä½ æŒ‡å®šçš„äººå…±äº«æ•°æ®ã€‚è¿™æ øP¼Œä½ ä¸ç”¨èŠ±é’±å°±å¯ä»¥äº«å—åˆ°æœ€å¥½ã€æœ€å®‰å…¨çš„æœåŠ¡ï¼Œç”šè‡³æ¯”åœ¨é“¶è¡Œé‡Œå­˜é’Þp¿˜æ–¹ä¾¿ã€?br /> <br />   其次åQŒäº‘计算对用æˆïL«¯çš„设备要求最低,使用èµäh¥ä¹Ÿæœ€æ–¹ä¾¿ã€‚大安™ƒ½æœ‰è¿‡¾l´æŠ¤ä¸ªähç”?sh¨´)脑上种¾cȝ¹å¤šçš„应用软äšgçš„ç»åŽ†ã€‚äØ“äº†ä‹É用某个最新的操作¾pȝ»ŸåQŒæˆ–使用某个软äšg的最新版本,我们必须不断升çñ”自己的电(sh¨´)è„‘ç¡¬ä»¶ã€‚äØ“äº†æ‰“å¼€æœ‹å‹å‘æ¥çš„æŸ¿Uæ ¼å¼çš„æ–‡æ¡£åQŒæˆ‘们不得不疯狂å¯ÀL‰¾òq¶ä¸‹è½½æŸä¸ªåº”用èÊYä»¶ã€?br />   ä¸ÞZº†é˜²æ­¢åœ¨ä¸‹è½½æ—¶å¼•入病毒åQŒæˆ‘们不得不反复安装杀毒和防火墙èÊYä»¶ã€‚æ‰€æœ‰è¿™äº›éº»çƒ¦äº‹åŠ åœ¨ä¸€èµøP¼Œå¯¹äºŽä¸€ä¸ªåˆšåˆšæŽ¥è§¦è®¡½Ž—机åQŒåˆšåˆšæŽ¥è§¦ç½‘¾lœçš„æ–°æ‰‹æ¥è¯´ä¸å•»ä¸€åœºå™©æ¢¦ï¼å¦‚果你再也无法忍受这æ ïLš„ç”?sh¨´)脑使用体验åQŒäº‘计算也许是你的最好选择。你只要有一台可以上¾|‘çš„ç”?sh¨´)è„‘åQŒæœ‰ä¸€ä¸ªä½ å–œæ¬¢çš„æµè§ˆå™¨åQŒä½ è¦åšçš„就是在‹¹è§ˆå™¨ä¸­é”®å…¥ URLåQŒç„¶åŽå°½æƒ…äín受云计算带给你的无限乐趣ã€?br />   你可以在‹¹è§ˆå™¨ä¸­ç›´æŽ¥¾~–辑存储åœ?#8220;äº?#8221;的另一端的文档åQŒä½ å¯ä»¥éšæ—¶ä¸Žæœ‹å‹åˆ†äº«ä¿¡æ¯ï¼Œå†ä¹Ÿä¸ç”¨æ‹…心你的软äšgæ˜¯å¦æ˜¯æœ€æ–°ç‰ˆæœ¬ï¼Œå†ä¹Ÿä¸ç”¨ä¸ø™ÊY件或文档染上病毒而发愁。因为在“äº?#8221;的另一端,有专业的 IT 人员帮你¾l´æŠ¤¼‹¬äšgåQŒå¸®ä½ å®‰è£…和升çñ”软äšgåQŒå¸®ä½ é˜²èŒƒç—…毒和各类¾|‘络æ”Õd‡»åQŒå¸®ä½ åšä½ ä»¥å‰åœ¨ä¸ªähç”?sh¨´)脑上所做的一切ã€?br /> <br />   此外åQŒäº‘计算可以è½ÀL¾å®žçŽ°ä¸åŒè®‘Ö¤‡é—´çš„æ•°æ®ä¸Žåº”用共享。大家不妨回想一下,你自å·Þqš„联系äºÞZ¿¡æ¯æ˜¯å¦‚何保存的。一个最常见的情形是åQŒä½ çš„æ‰‹æœºé‡Œå­˜å‚¨äº†å‡ ç™¾ä¸ªè”系人的ç”?sh¨´)话åïL åQŒä½ çš„个人电(sh¨´)脑或½W”记本电(sh¨´)脑里则存储了几百个电(sh¨´)å­é‚®ä»¶åœ°å€ã€‚äØ“äº†æ–¹ä¾¿åœ¨å‡ºå·®æ—¶å‘é‚®äšgåQŒä½ ä¸å¾—不在个ähç”?sh¨´)脑和笔记本电(sh¨´)脑之间定期同步联系äºÞZ¿¡æ¯ã€‚买了新的手机后åQŒä½ ä¸å¾—不在旧手机和新手æœÞZ¹‹é—´åŒæ­¥ç”µ(sh¨´)话号码ã€?br />   对了åQŒè¿˜æœ‰ä½ çš?PDA 以及你办公室里的ç”?sh¨´)脑。考虑åˆîC¸åŒè®¾å¤‡çš„æ•°æ®åŒæ­¥æ–ÒŽ(gu¨©)³•¿Uç±»¾Jå¤šåQŒæ“ä½œå¤æ‚,要在˜q™è®¸å¤šä¸åŒçš„讑֤‡ä¹‹é—´ä¿å­˜å’Œç»´æŠ¤æœ€æ–°çš„一份联¾pÖMh信息åQŒä½ å¿…须为此付出难以计数的时间和¾_‘ÖŠ›ã€‚è¿™æ—Óž¼Œä½ éœ€è¦ç”¨äº‘计½Ž—来让一切都变得更简单。在云计½Ž—çš„¾|‘络应用模式中,数据只有一份,保存åœ?#8220;äº?#8221;的另一端,你的所有电(sh¨´)子设备只需要连接互联网åQŒå°±å¯ä»¥åŒæ—¶è®‰K—®å’Œä‹É用同一份数据ã€?br />   仍然以联¾pÖMhä¿¡æ¯çš„ç®¡ç†äØ“ä¾‹ï¼Œå½“ä½ ä½¿ç”¨¾|‘络服务来管理所有联¾pÖMh的信息后åQŒä½ å¯ä»¥åœ¨ä“Q何地方用ä»ÖM½•一台电(sh¨´)脑找到某个朋友的ç”?sh¨´)子邮äšg地址åQŒå¯ä»¥åœ¨ä»ÖM½•一部手æœÞZ¸Šç›´æŽ¥æ‹¨é€šæœ‹å‹çš„ç”?sh¨´)话åïL åQŒä¹Ÿå¯ä»¥æŠŠæŸä¸ªè”¾pÖMh的电(sh¨´)子名片快速分享给好几个朋友。当ç„Óž¼Œ˜q™ä¸€åˆ‡éƒ½æ˜¯åœ¨ä¸¥æ ¼çš„安全管理机制下˜q›è¡Œçš„,只有å¯ÒŽ(gu¨©)•°æ®æ‹¥æœ‰è®¿é—®æƒé™çš„人,才可以ä‹É用或与他人分享这份数据ã€?br />   最后,云计½Ž—äØ“æˆ‘ä»¬ä½¿ç”¨¾|‘络提供了几乎无限多的可能,为存储和½Ž¡ç†æ•°æ®æä¾›äº†å‡ ä¹Žæ— é™å¤šçš„空é—ß_¼Œä¹Ÿäؓ我们完成各类应用提供了几乎无限强大的计算能力。想像一下,当你驾èžRå‡ºæ¸¸çš„æ—¶å€™ï¼Œåªè¦ç”¨æ‰‹æœø™¿žå…¥ç½‘¾lœï¼Œž®±å¯ä»¥ç›´æŽ¥çœ‹åˆ°è‡ªå·±æ‰€åœ¨åœ°åŒºçš„卫星地图和实时的交通状况,可以快速查询自己预讄¡š„行èžR路线åQŒå¯ä»¥è¯·¾|‘络上的好友推荐附近最好的景区和餐馆,可以快速预订目的地的宾馆,˜q˜å¯ä»¥æŠŠè‡ªå·±åˆšåˆšæ‹æ‘„的照片或视频剪辑分äín¾l™è¿œæ–¹çš„亲友…<br />   ¼›Õd¼€äº†äº‘计算åQŒå•单ä‹É用个人电(sh¨´)脑或手机上的客户端应用,我们是无法äín受这些便æïLš„。个人电(sh¨´)脑或其他ç”?sh¨´)子讑֤‡ä¸å¯èƒ½æä¾›æ— é™é‡çš„存储空间和计算能力åQŒä½†åœ?#8220;äº?#8221;的另一端,由数千台、数万台甚至更多服务器组成的庞大的集¾Ÿ¤å´å¯ä»¥è½ÀL˜“地做到这一炏V€‚个人和单个讑֤‡çš„能力是有限的,但云计算的潜力却几乎是无限的。当你把最常用的数据和最重要的功能都攑֜¨“äº?#8221;上时åQŒæˆ‘们相信,你对ç”?sh¨´)脑、应用èÊY件乃至网¾lœçš„认识会有¾˜Õd¤©è¦†åœ°çš„变化,你的生活也会因此而改变ã€?br /> <br /> <strong>展望未来</strong><br /> <br />   互联¾|‘çš„¾_„¡¥žå®žè´¨æ˜¯è‡ªç”±ã€åã^½{‰å’Œåˆ†äín。作ä¸ÞZ¸€¿Uæœ€èƒ½ä½“çŽîCº’联网¾_„¡¥žçš„计½Ž—模型,云计½Ž—å¿…ž®†åœ¨ä¸è¿œçš„将来展½Cºå‡ºå¼ºå¤§çš„生命力åQŒåƈž®†ä»Žå¤šä¸ªæ–šw¢æ”¹å˜æˆ‘们的工作和生活。无论是普通网¾lœç”¨æˆøP¼Œ˜q˜æ˜¯ä¼ä¸šå‘˜å·¥åQŒæ— è®ºæ˜¯ IT ½Ž¡ç†è€…,˜q˜æ˜¯è½¯äšg开发äh员,他们都能亲èín体验到这¿Uæ”¹å˜ã€?br /> <br />   另外åQŒäº‘计算¾~–ç¨‹æŠ€æœ¯å°†æˆäØ“åŸºå‡†çš„ä¸‹ä¸€ä»£è®¡½Ž—机¾~–程¾l“æž„ã€?br /> <br /> </div> <img src ="http://www.aygfsteel.com/shisanfeng/aggbug/204000.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/shisanfeng/" target="_blank">龙震</a> 2008-05-30 09:17 <a href="http://www.aygfsteel.com/shisanfeng/articles/204000.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软äšgåÏxœåŠ¡ï¼ˆSoftware as a ServiceåQŒSaaSåQ?/title><link>http://www.aygfsteel.com/shisanfeng/articles/203970.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Thu, 29 May 2008 17:29:00 GMT</pubDate><guid>http://www.aygfsteel.com/shisanfeng/articles/203970.html</guid><wfw:comment>http://www.aygfsteel.com/shisanfeng/comments/203970.html</wfw:comment><comments>http://www.aygfsteel.com/shisanfeng/articles/203970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/shisanfeng/comments/commentRss/203970.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/shisanfeng/services/trackbacks/203970.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />   软äšgåÏxœåŠ¡ï¼ˆSoftware as a ServiceåQŒSaaSåQ‰æ˜¯éšç€äº’联¾|‘技术的发展和应用èÊY件的成熟åQŒè€Œåœ¨ 21 世纪开始兴èµïLš„一¿Uå®Œå…¨åˆ›æ–°çš„软äšg应用模式ã€?br /> <br />   它与 On-Demand SoftwareåQˆæŒ‰éœ€è½¯äšg)、The Application Service Provider(ASPåQŒåº”用服务提供商)、Hosted SoftwareåQˆæ‰˜½Ž¡èÊYä»Óž¼‰å…ähœ‰ç›æ€¼¼çš„含义ã€?br />   它是一¿Ué€šè¿‡ Internet 提供软äšg的模式,厂商ž®†åº”用èÊY件统一部çÖv在自å·Þqš„æœåŠ¡å™¨ä¸ŠåQŒå®¢æˆ·å¯ä»¥æ ¹æ®è‡ªå·±å®žé™…需求,通过互联¾|‘向厂商定购所需的应用èÊY件服务,按定购的服务多少和时间长短向厂商支付费用åQŒåƈ通过互联¾|‘获得厂商提供的服务ã€?br />   用户不用再购买èÊYä»Óž¼Œè€Œæ”¹ç”¨å‘提供商租用基äº?Web çš„èÊYä»Óž¼Œæ¥ç®¡ç†ä¼ä¸šç»è¥æ´»åŠ¨ï¼Œä¸”æ— éœ€å¯¹èÊY件进行维护,服务提供商会全权½Ž¡ç†å’Œç»´æŠ¤èÊYä»Óž¼Œè½¯äšg厂商在向客户提供互联¾|‘应用的同时åQŒä¹Ÿæä¾›è½¯äšg的离¾U¿æ“ä½œå’Œæœ¬åœ°æ•°æ®å­˜å‚¨åQŒè®©ç”¨æˆ·éšæ—¶éšåœ°éƒ½å¯ä»¥ä‹É用其定购的èÊY件和服务ã€?br />   对于许多ž®åž‹ä¼ä¸šæ¥è¯´åQŒSaaS 是采用先˜q›æŠ€æœ¯çš„æœ€å¥½é€”径åQŒå®ƒæ¶ˆé™¤äº†ä¼ä¸šè´­ä¹°ã€æž„建和¾l´æŠ¤åŸºç¡€è®¾æ–½å’Œåº”用程序的需要ã€?br />   在这¿Uæ¨¡å¼ä¸‹åQŒå®¢æˆ·ä¸å†è±¡ä¼ ç»Ÿæ¨¡å¼é‚£æ ·èŠÞp´¹å¤§é‡æŠ•资用于¼‹¬äšg、èÊY件、äh员,而只需要支å‡ÞZ¸€å®šçš„¿UŸèµæœåŠ¡è´¹ç”¨åQŒé€šè¿‡äº’联¾|‘便可以享受到相应的¼‹¬äšg、èÊYä»¶å’Œ¾l´æŠ¤æœåŠ¡åQŒäín有èÊYä»¶ä‹É用权和不断升¾U§ï¼Œ˜q™æ˜¯¾|‘络应用最å…äh•ˆç›Šçš„营运模式ã€?br /> <br />   SaaS 服务模式与传¾lŸçš„销售èÊY件永久许可证的方式有很大的不同,它是未来½Ž¡ç†è½¯äšg的发展趋åŠÑ€?br /> <br />   SaaS 不仅减少或取消了传统的èÊY件授权费用,而且厂商ž®†åº”用èÊY仉™ƒ¨¾|²åœ¨¾lŸä¸€çš„æœåŠ¡å™¨ä¸Šï¼Œå…é™¤äº†æœ€¾lˆç”¨æˆïLš„æœåŠ¡å™¨ç¡¬ä»¶ã€ç½‘¾lœå®‰å…¨è®¾å¤‡å’Œè½¯äšg升çñ”¾l´æŠ¤çš„æ”¯å‡ºï¼Œå®¢æˆ·ä¸éœ€è¦é™¤äº†ä¸ªäººç”µ(sh¨´)脑和互联¾|‘连接之外的其它 IT 投资ž®±å¯ä»¥é€šè¿‡äº’联¾|‘获得所需要èÊY件和服务ã€?br />   此外åQŒå¤§é‡çš„æ–°æŠ€æœ¯ï¼Œå¦?Web ServiceåQŒæä¾›äº†æ›´ç®€å•、更灉|´»ã€æ›´å®žç”¨çš?SaaSã€?br />   另外åQŒSaaS 供应商通常是按照客æˆäh‰€¿UŸç”¨çš„èÊY件模块来˜q›è¡Œæ”¶è´¹çš„,因此用户可以æ ÒŽ(gu¨©)®éœ€æ±‚按需订购软äšg应用服务åQŒè€Œä¸” SaaS 的供应商会负责系¾lŸçš„部çÖv、升¾U§å’Œ¾l´æŠ¤åQŒè€Œä¼ ¾lŸç®¡ç†èÊY仉™€šå¸¸æ˜¯ä¹°å®‰™œ€è¦ä¸€‹Æ¡æ”¯ä»˜ä¸€½W”可观的费用才能正式启动ã€?br /> <br />   SaaS æœåŠ¡æä¾›å•†äØ“ä¸­å°ä¼ä¸šæ­å¾ä¿¡æ¯åŒ–æ‰€éœ€è¦çš„æ‰€æœ‰ç½‘¾lœåŸº¼‹€è®¾æ–½åŠèÊY件、硬件运作åã^収ͼŒòq¶è´Ÿè´£æ‰€æœ‰å‰æœŸçš„实施、后期的¾l´æŠ¤½{‰ä¸€¾pÕdˆ—服务åQŒä¼ä¸šæ— éœ€è´­ä¹°è½¯ç¡¬ä»¶ã€å¾è®¾æœºæˆÑ€æ‹›è?IT 人员åQŒåªéœ€å‰æœŸæ”¯ä»˜ä¸€‹Æ¡æ€§çš„™å¹ç›®å®žæ–½è´¹å’Œå®šæœŸçš„èÊY件租赁服务费åQŒå³å¯é€šè¿‡äº’联¾|‘äín用信息系¾lŸã€?br />   服务提供商通过有效的技术措施,可以保证每家企业数据的安全性和保密性ã€?br />   企业采用 SaaS 服务模式在效果上与企业自å»ÞZ¿¡æ¯ç³»¾lŸåŸºæœ¬æ²¡æœ‰åŒºåˆ«ï¼Œä½†èŠ‚çœäº†å¤§é‡ç”¨äºŽè´­ä¹° IT 产品、技术和¾l´æŠ¤˜qè¡Œçš„èµ„é‡‘ï¼Œä¸”åƒæ‰“å¼€è‡ªæ¥æ°´é¾™å¤´å°±èƒ½ç”¨æ°´ä¸€æ øP¼Œæ–¹ä¾¿åœ°åˆ©ç”¨ä¿¡æ¯åŒ–¾pȝ»ŸåQŒä»Žè€Œå¤§òq…度降低了中ž®ä¼ä¸šä¿¡æ¯åŒ–的门槛与风险ã€?br /> <br />   具体来说 SaaS 可以为客户带来如下的价å€û|¼š<br /> <br />     01. 服务的收è´ÒŽ(gu¨©)–¹å¼é£Žé™©å°åQŒçµ‹z»é€‰æ‹©æ¨¡å—åQŒå¤‡ä»½ï¼Œ¾l´æŠ¤åQŒå®‰å…¨ï¼Œå‡çñ”<br />     02. 让客æˆäh›´ä¸“注核心业务<br />     03. 灉|´»å¯ç”¨å’Œæš‚停,随时随地都可使用<br />     04. 按需定购åQŒé€‰æ‹©æ›´åŠ è‡ªç”±<br />     05. 产品更新速度加快<br />     06. 市场½Iºé—´å¢žå¤§<br />     07. 实现òq´æ¯å¼çš„循环收入模式<br />     08. 有效降低营销成本<br />     09. 准面寚w¢ä½¿ç”¨æŒ‡å¯¼<br />     10. 在全球各圎ͼŒ7*24 全天候网¾lœæœåŠ?br />     11. 不需要额外增加专业的 IT 人员<br />     12. 大大降低客户的æ€ÖM½“拥有成本<br /> <br /> </div> <img src ="http://www.aygfsteel.com/shisanfeng/aggbug/203970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/shisanfeng/" target="_blank">龙震</a> 2008-05-30 01:29 <a href="http://www.aygfsteel.com/shisanfeng/articles/203970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>搜烦引擎中的召回率(查全率)与精度(查准率)http://www.aygfsteel.com/shisanfeng/articles/199128.html龙震龙震Thu, 08 May 2008 01:22:00 GMThttp://www.aygfsteel.com/shisanfeng/articles/199128.htmlhttp://www.aygfsteel.com/shisanfeng/comments/199128.htmlhttp://www.aygfsteel.com/shisanfeng/articles/199128.html#Feedback0http://www.aygfsteel.com/shisanfeng/comments/commentRss/199128.htmlhttp://www.aygfsteel.com/shisanfeng/services/trackbacks/199128.html .thint,.thint td{border:1px #000 solid;border-collapse:collapse} .thint{margin:0 0 0 50px} .thint td{padding:5px;font-size:12px}

  召回率(Recall RateåQ‰ï¼ˆæŸ¥å…¨çŽ‡ï¼‰åQšæ˜¯‹‚€ç´¢å‡ºçš„相å…Ïx–‡æ¡£æ•°å’Œæ–‡æ¡£åº“中所有的相关文档数的比率åQŒè¡¡é‡çš„æ˜¯æ£€ç´¢ç³»¾lŸçš„æŸ¥å…¨çއã€?
  ¾_‘Öº¦åQˆPrecisionåQ‰ï¼ˆæŸ¥å‡†çŽ‡ï¼‰åQšæ˜¯‹‚€ç´¢å‡ºçš„相å…Ïx–‡æ¡£æ•°ä¸Žæ£€ç´¢å‡ºçš„æ–‡æ¡£æ€ÀL•°çš„æ¯”率,衡量的是‹‚€ç´¢ç³»¾lŸçš„æŸ¥å‡†çއã€?br />
  对于一个检索系¾lŸæ¥è®ÔŒ¼Œå¬å›žçŽ‡å’Œ¾_‘Öº¦ä¸å¯èƒ½ä¸¤å…¨å…¶¾ŸŽï¼šå¬å›žçŽ‡é«˜æ—Óž¼Œ¾_‘Öº¦ä½Žï¼Œ¾_‘Öº¦é«˜æ—¶åQŒå¬å›žçŽ‡ä½Žã€?br />   所以常常用 11 ¿Uå¬å›žçއä¸?11 ¿Uç²¾åº¦çš„òq›_‡å€¼æ¥è¡¡é‡ä¸€ä¸ªæ£€ç´¢ç³»¾lŸçš„¾_‘Öº¦ã€?br />   对于搜烦引擎¾pȝ»Ÿæ¥è®²åQŒå› ä¸ºæ²¡æœ‰ä¸€ä¸ªæœç´¢å¼•擎系¾lŸèƒ½å¤Ÿæœé›†åˆ°æ‰€æœ‰çš„ Web ¾|‘页åQŒæ‰€ä»¥å¬å›žçŽ‡å¾ˆéš¾è®¡ç®—ã€?br />   目前的搜索引擎系¾lŸéƒ½éžå¸¸å…›_¿ƒ¾_‘Öº¦ã€?br />
  影响一个搜索引擎系¾lŸçš„æ€§èƒ½æœ‰å¾ˆå¤šå› ç´ ï¼Œæœ€ä¸»è¦çš„æ˜¯ä¿¡æ¯‹‚€ç´¢æ¨¡åž‹ï¼ŒåŒ…括文档和查询的表示æ–ÒŽ(gu¨©)³•、评ä»äh–‡æ¡£å’Œç”¨æˆ·æŸ¥è¯¢ç›¸å…³æ€§çš„匚w…½{–略、查询结果的排序æ–ÒŽ(gu¨©)³•和用戯‚¿›è¡Œç›¸å…›_º¦åé¦ˆçš„æœºåˆ¶ã€?br />
  从一个大规模数据集合中检索文档的æ—Óž¼Œå¯æŠŠæ–‡æ¡£åˆ†æˆå››ç»„åQ?br />
     R€€¾pȝ»Ÿ‹‚€ç´¢åˆ°çš„相å…Ïx–‡æ¡£ï¼ˆAåQ?br />      R€€¾pȝ»Ÿ‹‚€ç´¢åˆ°çš„不相关文档åQˆBåQ?br />      R€€ç›¸å…³ä½†æ˜¯¾pȝ»Ÿæ²¡æœ‰‹‚€ç´¢åˆ°çš„æ–‡æ¡£ï¼ˆCåQ?br />      R€€ç›¸å…³ä½†æ˜¯è¢«ç³»¾lŸæ£€ç´¢åˆ°çš„æ–‡æ¡£ï¼ˆDåQ?br />
相关 不相�/td>
‹‚€ç´¢åˆ° A B
未检索到 C D

  直观的说åQŒä¸€ä¸ªå¥½çš„æ£€ç´¢ç³»¾lŸæ£€ç´¢åˆ°çš„相å…Ïx–‡æ¡£è¶Šå¤šè¶Šå¥½ï¼Œä¸ç›¸å…Ïx–‡æ¡£è¶Šž®‘越好ã€?br />
  召回çŽ?RåQšç”¨‹‚€ç´¢åˆ°ç›¸å…³æ–‡æ¡£æ•îC½œä¸ºåˆ†å­ï¼Œæ‰€æœ‰ç›¸å…Ïx–‡æ¡£æ€ÀL•°ä½œäؓ分母åQŒå³ R=A/(A+C)ã€?br />   ¾_‘Öº¦ PåQšç”¨‹‚€ç´¢åˆ°ç›¸å…³æ–‡æ¡£æ•îC½œä¸ºåˆ†å­ï¼Œæ‰€æœ‰æ£€ç´¢åˆ°çš„æ–‡æ¡£æ€ÀL•°ä½œäؓ分母åQŒå³ P=A/(A+B)ã€?br />
  举例åQšä¸€ä¸ªæ•°æ®åº“æœ?500 个文档,其中æœ?50 个文档符合定义的问题åQ›ç³»¾lŸæ£€ç´¢åˆ° 75 个文档,但其中只æœ?45 个文档符合定义ã€?br />
    召回率:R=45/50=90%ã€?br />     ¾_‘Öº¦åQšP=45/75=60%ã€?br />
  上例中:¾pȝ»Ÿ‹‚€ç´¢æ˜¯æ¯”è¾ƒæœ‰æ•ˆçš„ï¼Œå¬å›žçŽ‡äØ“ 90%åQ›ä½†æ˜¯ç»“果有很大的噪韻I¼Œæœ‰è¿‘一半的‹‚€ç´¢ç»“果是不相兟ë€?br />
  研究表明åQšåœ¨ä¸ç‰ºç‰²ç²¾åº¦çš„æƒ…况下,获得一个高召回率是很困隄¡š„åQ›å¬å›žçއ­‘Šé«˜åQŒç²¾åº¦ä¸‹é™çš„很快åQŒè€Œä¸”˜q™ç§­‘‹åŠ¿ä¸æ˜¯¾U¿æ€§çš„ã€?br />


龙震 2008-05-08 09:22 发表评论
]]>
Java ¾l§æ‰¿æœºåˆ¶http://www.aygfsteel.com/shisanfeng/articles/191375.html龙震龙震Mon, 07 Apr 2008 14:44:00 GMThttp://www.aygfsteel.com/shisanfeng/articles/191375.htmlhttp://www.aygfsteel.com/shisanfeng/comments/191375.htmlhttp://www.aygfsteel.com/shisanfeng/articles/191375.html#Feedback0http://www.aygfsteel.com/shisanfeng/comments/commentRss/191375.htmlhttp://www.aygfsteel.com/shisanfeng/services/trackbacks/191375.html
1 ¾l§æ‰¿çš„æ¦‚å¿?/strong>

  如果¾c?B å…ähœ‰¾c?A 的全部属性和æ–ÒŽ(gu¨©)³•åQŒè€Œä¸”又具有自å·Þq‰¹æœ‰çš„æŸäº›å±žæ€§å’Œæ–ÒŽ(gu¨©)³•åQŒåˆ™æŠŠç±» A ¿UîC½œä¸€èˆ¬ç±»åQŒæŠŠ¾c?B ¿UîC½œç‰ÒŽ(gu¨©)®Š¾c…R€?br />
  在面向对象程序设计中˜qç”¨¾l§æ‰¿åŽŸåˆ™åQŒå°±æ˜¯åœ¨æ¯ä¸ªç”׃¸€èˆ¬ç±»å’Œç‰¹ŒDŠç±»å½¢æˆçš„一èˆ?- ç‰ÒŽ(gu¨©)®Š¾l“构中,把一般类的对象实例和所有特ŒDŠç±»çš„对象实例都共同å…ähœ‰çš„属性和操作一‹Æ¡æ€§åœ°åœ¨ä¸€èˆ¬ç±»ä¸­è¿›è¡Œæ˜¾å¼çš„定义åQŒåœ¨ç‰ÒŽ(gu¨©)®Š¾cÖM¸­ä¸å†é‡å¤åœ°å®šä¹‰ä¸€èˆ¬ç±»ä¸­å·²¾lå®šä¹‰çš„东西åQŒä½†æ˜¯åœ¨è¯­ä¹‰ä¸Šï¼Œç‰ÒŽ(gu¨©)®Š¾cÕd´è‡ªåŠ¨åœ°ã€éšå«åœ°æ‹¥æœ‰å®ƒçš„ä¸€èˆ¬ç±»åQˆä»¥åŠæ‰€æœ‰æ›´ä¸Šå±‚的一般类åQ‰ä¸­å®šä¹‰çš„属性和操作ã€?br />   ç‰ÒŽ(gu¨©)®Š¾cȝš„对象拥有其一般类的全部或部分属性与æ–ÒŽ(gu¨©)³•åQŒç§°ä½œç‰¹ŒDŠç±»å¯¹ä¸€èˆ¬ç±»çš„ç‘ôæ‰Ñ€?br />
  ¾l§æ‰¿æ‰€è¡¨è¾¾çš„就是一¿Uå¯¹è±¡ä¹‹é—´çš„ç›æ€º¤å…³ç³»åQŒå®ƒä½¿å¾—某类对象可以¾l§æ‰¿å¦å¤–一¾cÕd¯¹è±¡çš„æ•°æ®æˆå‘˜å’Œæˆå‘˜æ–¹æ³•ã€?br />   若类 B ¾l§æ‰¿¾c?A æ—Óž¼Œåˆ™å±žäº?B 的对象便å…ähœ‰¾c?A 的全部或部分性质åQˆæ•°æ®å±žæ€§ï¼‰å’ŒåŠŸèƒ½ï¼ˆæ“ä½œåQ‰ã€?br />   我们¿U°è¢«¾l§æ‰¿çš„ç±» A 为基¾c…R€çˆ¶¾cÀLˆ–­‘…ç±»åQŒè€Œç§°¾l§æ‰¿¾c?B ä¸?A 的派生类或子¾c…R€?br />
  ¾l§æ‰¿é¿å…äº†å¯¹ä¸€èˆ¬ç±»å’Œç‰¹ŒDŠç±»ä¹‹é—´å…±åŒç‰¹å¾˜q›è¡Œçš„重复描˜q°ã€?br />
2 ¾l§æ‰¿çš„特å¾?/strong>

  ¾l§æ‰¿å…³ç³»æ˜¯ä¼ é€’的。ç‘ô承是在一些比较一般的¾cȝš„基础上构造、徏立和扩充新类的最有效的手ŒDüc€?br />   ¾l§æ‰¿½Ž€åŒ–了äºÞZ»¬å¯¹äº‹ç‰©çš„认识和描˜qŽÍ¼Œèƒ½æ¸…æ™îC½“现相关类间的层次¾l“构关系ã€?br />   提供软äšg复用功能ã€?br />   通过增强一致性来减少模块间的接口和界面,大大增加½E‹åºçš„æ˜“¾l´æŠ¤æ€§ã€?br />   提供多重¾l§æ‰¿æœºåˆ¶ã€‚从理论上说åQŒä¸€ä¸ªç±»å¯ä»¥æ˜¯å¤šä¸ªä¸€èˆ¬ç±»çš„特ŒDŠç±»åQŒå®ƒå¯ä»¥ä»Žå¤šä¸ªä¸€èˆ¬ç±»ä¸­ç‘ô承属性和æ–ÒŽ(gu¨©)³•åQŒè¿™ä¾¿æ˜¯å¤šé‡¾l§æ‰¿ã€‚è€?Java å‡ÞZºŽå®‰å…¨æ€§å’Œå¯é æ€§çš„考虑åQŒä»…支持单重¾l§æ‰¿åQŒè€Œé€šè¿‡ä½¿ç”¨æŽ¥å£æœºåˆ¶æ¥å®žçŽ°å¤šé‡ç‘ôæ‰Ñ€?br />
3 Java ç”?extends 指明¾l§æ‰¿å…³ç³»

  åœ?Java ½E‹åºè®¾è®¡ä¸­ï¼Œ¾l§æ‰¿æ˜¯é€šè¿‡ extends 关键字来实现的ã€?br />   在定义类时ä‹Éç”?extends 关键字指明新定义¾cȝš„父类åQŒæ–°å®šä¹‰çš„ç±»¿UîCؓ指定父类的子¾c»ï¼Œ˜q™æ ·ž®±åœ¨ä¸¤ä¸ª¾cÖM¹‹é—´å¾ç«‹è“v了ç‘ô承关¾p…R€?br />   ˜q™ä¸ªæ–°å®šä¹‰çš„子类可以从父¾c»é‚£é‡Œç‘ô承所有非 private 的属性和æ–ÒŽ(gu¨©)³•ä½œäØ“è‡ªå·±çš„æˆå‘˜ã€?br />   实际上,在定义一个类而不¾l™å‡º extends 关键字及父类名时åQŒé»˜è®¤è¿™ä¸ªç±»æ˜¯ç³»¾lŸç±» Object 的子¾c…R€?br />
3.1 数据成员的ç‘ôæ‰?/strong>

  子类可以¾l§æ‰¿çˆ¶ç±»çš„æ‰€æœ‰éž¿Uæœ‰çš„æ•°æ®æˆå‘˜ã€?br />
3.2 数据成员的隐�/strong>

  数据成员的隐藏是指在子类中重新定义一个与父类中已¾lå®šä¹‰çš„æ•°æ®æˆå‘˜åå®Œå…¨ç›¸åŒçš„æ•°æ®æˆå‘˜åQŒå³å­ç±»æ‹¥æœ‰äº†ä¸¤ä¸ªç›¸åŒåå­—的数据成员åQŒä¸€ä¸ªæ˜¯¾l§æ‰¿çˆ¶ç±»çš„,另一个是自己定义的ã€?br />   当子¾cÕd¼•用这个同名的数据成员æ—Óž¼Œé»˜è®¤æ“ä½œæ˜¯å®ƒè‡ªå·±å®šä¹‰çš„æ•°æ®æˆå‘˜ï¼Œè€ŒæŠŠä»Žçˆ¶¾c»é‚£é‡Œç‘ô承来的数据成å‘?#8220;隐藏”èµäh¥ã€?br />   当子¾c»è¦å¼•用¾l§æ‰¿è‡ªçˆ¶¾cȝš„同名数据成员æ—Óž¼Œå¯ä‹É用关键字 super 引导ã€?br />
3.3 成员æ–ÒŽ(gu¨©)³•çš„ç‘ôæ‰?/strong>

  子类可以¾l§æ‰¿çˆ¶ç±»çš„非¿Uæœ‰æˆå‘˜æ–ÒŽ(gu¨©)³•ã€?br />
3.4 成员æ–ÒŽ(gu¨©)³•的覆盖(OverloadåQ?/strong>

  子类可以重新定义与父¾cÕdŒåçš„æˆå‘˜æ–ÒŽ(gu¨©)³•åQŒå®žçŽ°å¯¹çˆ¶ç±»æ–ÒŽ(gu¨©)³•的覆盖ã€?br />
  æ–ÒŽ(gu¨©)³•的覆盖与数据成员的隐藏的不同之处在于åQ?br />
    子类隐藏父类的数据成员只是ä‹É之不可见åQŒçˆ¶¾cÕdŒåçš„æ•°æ®æˆå‘˜åœ¨å­¾cÕd¯¹è±¡ä¸­ä»ç„¶å æœ‰è‡ªå·±ç‹¬ç«‹çš„内存空é—ß_¼›
    子类æ–ÒŽ(gu¨©)³•对父¾cÕdŒåæ–¹æ³•的覆盖ž®†æ¸…除父¾cÀL–¹æ³•占用的内存åQŒä»Žè€Œä‹É父类æ–ÒŽ(gu¨©)³•在子¾cÕd¯¹è±¡ä¸­ä¸å¤å­˜åœ¨ã€?br />
  需要注意的是:子类在重新定义父¾cÕd·²æœ‰çš„æ–ÒŽ(gu¨©)³•æ—Óž¼Œåº”保持与父类完全相同的方法名、返回值类型和参数列表åQŒå¦åˆ™å°±ä¸æ˜¯æ–ÒŽ(gu¨©)³•的覆盖,而是子类定义自己ç‰ÒŽ(gu¨©)œ‰çš„æ–¹æ³•,与父¾cÈš„æ–ÒŽ(gu¨©)³•æ— å…³ã€?br />
4 this �super

4.1 this çš„ä‹É用场å?/strong>

  在方法内借助 this 来明¼‹®è¡¨½Cºå¼•用的是类的数据成员,而不是åŞ参或局部变量,从而提高程序的可读性ã€?br />   ½Ž€å•地è¯ß_¼Œthis ä»£è¡¨äº†å½“å‰å¯¹è±¡çš„ä¸€ä¸ªå¼•ç”¨ï¼Œå¯å°†å…¶ç†è§£äØ“å¯¹è±¡çš„å¦ä¸€ä¸ªåå­—ï¼Œé€šè¿‡˜q™ä¸ªåå­—可以™åºåˆ©åœ°è®¿é—®å¯¹è±¡ã€ä¿®æ”¹å¯¹è±¡çš„æ•°æ®æˆå‘˜ã€è°ƒç”¨å¯¹è±¡çš„æ–ÒŽ(gu¨©)³•ã€?br />
  this çš„ä‹É用场合主要有以下三种åQ?br />
    用来讉K—®å½“前对象的数据成员:

this.数据成员

    用来讉K—®å½“前对象的成员方法:

this.成员æ–ÒŽ(gu¨©)³•(参数)

    当有重蝲的构造方法时åQŒç”¨æ¥å¼•用同¾cȝš„其他构造方法:

this(参数)

4.2 super çš„ä‹É用场å?/strong>

  super 表示的是当前对象的直接父¾cÕd¯¹è±¡ï¼Œæ˜¯å½“前对象的直接父类对象的引用ã€?br />   所谓直接父¾cÀL˜¯ç›¸å¯¹äºŽå½“前对象的其他“¼œ–å…ˆ”¾c»è€Œè¨€ã€?br />   若子¾cÈš„æ•°æ®æˆå‘˜æˆ–成员方法名与父¾cÈš„æ•°æ®æˆå‘˜æˆ–成员方法名相同æ—Óž¼Œå½“要调用父类的同名方法或使用父类的同名数据成员,则可用关键字 super 来指明父¾cÈš„æ•°æ®æˆå‘˜å’Œæ–¹æ³•ã€?br />
  super çš„ä‹É用场合有三种åQ?br />
    用来讉K—®ç›´æŽ¥çˆ¶ç±»éšè—çš„æ•°æ®æˆå‘˜ï¼š

super.数据成员

    用来调用直接父类中被覆盖的成员方法:

super.成员æ–ÒŽ(gu¨©)³•(参数)

    用来调用直接父类的构造方法:

super(参数)

5 构造方法的重蝲与ç‘ôæ‰?/strong>

5.1 构造方法的重蝲

  一个类的若òq²ä¸ªæž„造方法之间可以相互调用ã€?br />   当一个构造方法需要调用另一个构造方法时åQŒå¯ä»¥ä‹É用关键字 thisåQŒåŒæ—¶è¿™ä¸ªè°ƒç”¨è¯­å¥åº”该是整个构造方法的½W¬ä¸€ä¸ªå¯æ‰§è¡Œè¯­å¥ã€?br />   使用关键å­?this 来调用同¾cȝš„其他构造函数时åQŒä¼˜ç‚¹åŒæ äh˜¯å¯ä»¥æœ€å¤§é™åº¦åœ°æé«˜å¯¹å·²æœ‰ä»£ç çš„利用½E‹åº¦åQŒæé«˜ç¨‹åºçš„æŠ½è±¡åº¦å’Œž®è£…性,减少½E‹åºçš„维护工作量ã€?br />
5.2 构造方法的¾l§æ‰¿

  子类可以¾l§æ‰¿çˆ¶ç±»çš„æž„造方法,构造方法的¾l§æ‰¿éµåó@以下的原则:

    子类无条件地¾l§æ‰¿çˆ¶ç±»çš„不含参数的构造方法ã€?br />     如果子类自己没有构造方法,则它?y¨­u)®†ç‘ô承父¾cÈš„æ— å‚æ•°æž„é€ æ–¹æ³•ä½œä¸ø™‡ªå·Þqš„æž„造方法;如果子类自己定义了构造方法,则在创徏新对象时åQŒå®ƒ?y¨­u)®†å…ˆæ‰§è¡Œ¾l§æ‰¿è‡ªçˆ¶¾cÈš„æ— å‚数构造方法,然后再执行自å·Þqš„æž„造方法ã€?br />     对于父类含参数的构造方法,子类可以通过在自å·Þqš„æž„造方法中使用 super 关键字来调用它,但这个调用语句必™åÀL˜¯å­ç±»æž„造方法的½W¬ä¸€ä¸ªå¯æ‰§è¡Œè¯­å¥ã€?br />
6 向方法传递对�/strong>

  传递给æ–ÒŽ(gu¨©)³•的参数可以是表达式(如常量、变量)、对象等ã€?br />   传递给æ–ÒŽ(gu¨©)³•的参数若是变量,则只能由实参传递给形参åQŒè€Œä¸èƒ½ç”±å½¢å‚带回åQŒå®ƒæ˜¯ä¸€¿Uå•向å€ég¼ é€’ã€?br />   在方法的引用˜q‡ç¨‹ä¸­ï¼Œå¯¹äºŽå½¢å‚变量值的修改òq¶ä¸å½±å“å®žå‚变量的倹{€?br />   但是åQŒä¼ é€’ç»™æ–ÒŽ(gu¨©)³•çš„å‚æ•°è‹¥æ˜¯å¯¹è±¡ï¼Œåˆ™æ–¹æ³•å¯ä»¥å¯¹å…¶åšæ°æ€¹…性修攏V€?br />
7 ¾c»è{æ?/strong>

  ¾c»è{换就是指父类对象与子¾cÕd¯¹è±¡ä¹‹é—´åœ¨ä¸€å®šæ¡ä»¶ä¸‹çš„相互è{换ã€?br />
  父类对象与子¾cÕd¯¹è±¡ä¹‹é—´ç›¸äº’è{换规则如下:

    父类对象与子¾cÕd¯¹è±¡ä¹‹é—´å¯ä»¥éšå¼è{换(也称默认转换åQ‰ï¼Œä¹Ÿå¯ä»¥æ˜¾å¼è{换(也称强制转换åQ‰ã€?br />     处于相同¾cÕd±‚‹Æ¡çš„¾cȝš„对象不能˜q›è¡Œè½¬æ¢ã€?br />     子类对象可以转换成父¾cÕd¯¹è±¡ï¼Œä½†å¯¹æ•°æ®æˆå‘˜çš„引用必™åÖM‹É用强制è{换ã€?br />
  ¾c»è{换格式如下:

(子类)父类

  �br />
(父类)子类

8 ¾l§æ‰¿ä¸Žå°è£…的关系

  在面向对象系¾lŸä¸­åQŒå°è£…性主要指的是对象的封装性,卛_°†å±žäºŽæŸä¸€¾cȝš„一个具体对象封装è“v来,使其数据和操作成ä¸ÞZ¸€ä¸ªæ•´ä½“ã€?br />   在引入了¾l§æ‰¿æœºåˆ¶çš„面向对象系¾lŸä¸­åQŒå¯¹è±¡ä¾ç„¶æ˜¯ž®è£…得很好的实体åQŒå…¶ä»–对象与它进行通讯的途径仍然只有一条,那就是发送消息ã€?br />   ¾cÀLœºåˆ¶æ˜¯ä¸€¿Ué™æ€æœºåˆÓž¼Œä¸ç®¡æ˜¯åŸº¾c»è¿˜æ˜¯æ´¾ç”Ÿç±»åQŒå¯¹äºŽå¯¹è±¡æ¥è¯ß_¼Œå®ƒä»ç„¶æ˜¯ä¸€ä¸ªç±»çš„实例,既可能是基类的实例,也可能是‹z„¡”Ÿ¾cȝš„实例ã€?br />   因此åQŒç‘ô承机制的引入丝毫没有影响对象的封装性ã€?br />
  ¾l§æ‰¿å’Œå°è£…机制还å…ähœ‰ä¸€å®šçš„ç›æ€¼¼æ€§ï¼Œå®ƒä»¬éƒ½æ˜¯ä¸€¿Uå…±äº«ä»£ç çš„æ‰‹æ®µã€?br />   ¾l§æ‰¿æ˜¯ä¸€¿Ué™æ€å…±äº«ä»£ç çš„æ‰‹æ®µåQŒé€šè¿‡‹z„¡”Ÿ¾cÕd¯¹è±¡çš„创徏åQŒå¯ä»¥æŽ¥æ”¶æŸä¸€æ¶ˆæ¯åQŒå¯åŠ¨å…¶åŸºç±»æ‰€å®šä¹‰çš„ä»£ç æ®µåQŒä»Žè€Œä‹É基类和派生类å…׃ín了这一ŒDµä»£ç ã€?br />   ž®è£…机制所提供的是一¿UåŠ¨æ€å…±äº«ä»£ç çš„æ‰‹æ®µåQŒé€šè¿‡ž®è£…åQŒæˆ‘们可ž®†ä¸€ŒDµä»£ç å®šä¹‰åœ¨ä¸€ä¸ªç±»ä¸­ï¼Œåœ¨å¦ä¸€ä¸ªç±»æ‰€å®šä¹‰çš„æ“ä½œä¸­åQŒæˆ‘们可以通过创徏该类的实例,òq¶å‘它发送消息而启动这一ŒDµä»£ç ï¼ŒåŒæ ·ä¹Ÿè¾¾åˆ°å…±äº«çš„目的ã€?br />


]]>
Java 多态机åˆ?/title><link>http://www.aygfsteel.com/shisanfeng/articles/191374.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Mon, 07 Apr 2008 14:32:00 GMT</pubDate><guid>http://www.aygfsteel.com/shisanfeng/articles/191374.html</guid><wfw:comment>http://www.aygfsteel.com/shisanfeng/comments/191374.html</wfw:comment><comments>http://www.aygfsteel.com/shisanfeng/articles/191374.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/shisanfeng/comments/commentRss/191374.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/shisanfeng/services/trackbacks/191374.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />   多态描˜q°çš„æ˜¯åŒåæ–¹æ³•可以根据发送消息的对象传送参数的不同åQŒé‡‡å–ä¸åŒçš„è¡ŒäØ“æ–¹å¼çš„ç‰¹æ€§ã€?br />   面向对象¾pȝ»Ÿä¸­é‡‡ç”¨å¤šæ€ï¼Œå¤§å¤§æé«˜äº†ç¨‹åºçš„æŠ½è±¡½E‹åº¦å’Œç®€‹zæ€§ï¼Œæ›´é‡è¦çš„æ˜¯ï¼Œå®ƒæœ€å¤§é™åº¦åœ°é™ä½Žäº†ç±»å’Œç¨‹åºæ¨¡å—之间的耦合性,提高了类模块的封闭性,使得它们不需了解å¯ÒŽ(gu¨©)–¹çš„具体细节,ž®±å¯ä»¥å¾ˆå¥½åœ°å…±åŒå·¥ä½œã€?br />   ˜q™ä¸€ç‚¹å¯¹½E‹åºçš„设计、开发和¾l´æŠ¤éƒ½æœ‰å¾ˆå¤§çš„好处ã€?br /> <br /> <strong>1 多态的概念</strong><br /> <br />   多态是指一个程序中同名的不同方法共存的情况ã€?br />   ˜q™äº›æ–ÒŽ(gu¨©)³•同名的原因是它们的最¾lˆåŠŸèƒ½å’Œç›®çš„éƒ½ç›¸åŒï¼Œä½†æ˜¯ç”׃ºŽåœ¨å®ŒæˆåŒä¸€åŠŸèƒ½æ—Óž¼Œå¯èƒ½é‡åˆ°ä¸åŒçš„具体情况,所以需要定义含不同的具体内容的æ–ÒŽ(gu¨©)³•åQŒæ¥ä»£è¡¨å¤šç§å…·ä½“实现形式ã€?br /> <br />   Java 提供两种多态机åˆÓž¼šé‡è²ä¸Žè¦†ç›–ã€?br /> <br /> <strong>2 æ–ÒŽ(gu¨©)³•重蝲</strong><br /> <br />   在同一¾cÖM¸­å®šä¹‰äº†å¤šä¸ªåŒåè€Œä¸åŒå†…容的成员æ–ÒŽ(gu¨©)³•æ—Óž¼Œæˆ‘们¿U°è¿™äº›æ–¹æ³•是重蝲åQˆOverrideåQ‰çš„æ–ÒŽ(gu¨©)³•ã€?br />   重蝲的方法主要通过形式参数列表中参数的个数、参数的数据¾cÕdž‹å’Œå‚æ•°çš„™åºåº½{‰æ–¹é¢çš„不同来区分的ã€?br />   在编译期é—ß_¼ŒJava ¾~–译器检查每个方法所用的参数数目和类型,然后调用正确的方法ã€?br /> <br /> <strong>3 覆盖</strong><br /> <br />   ç”׃ºŽé¢å‘对象¾pȝ»Ÿä¸­çš„¾l§æ‰¿æœºåˆ¶åQŒå­¾cÕd¯ä»¥ç‘ô承父¾cÈš„æ–ÒŽ(gu¨©)³•ã€?br />   但是åQŒå­¾cÈš„æŸäº›ç‰¹å¾å¯èƒ½ä¸Žä»Žçˆ¶ç±»ä¸­ç‘ô承来的特征有所不同åQŒäØ“äº?br /> 体现子类的这¿Uä¸ªæ€§ï¼ŒJava 允许子类对父¾cȝš„同名æ–ÒŽ(gu¨©)³•重新˜q›è¡Œå®šä¹‰åQŒå³åœ¨å­¾cÖM¸­å®šä¹‰ä¸Žçˆ¶¾cÖM¸­å·²å®šä¹‰çš„相同名而内容不容的æ–ÒŽ(gu¨©)³•ã€?br />   ˜q™ç§å¤šæ€è¢«¿UîCؓ覆盖åQˆOverloadåQ‰ã€?br /> <br />   ç”׃ºŽè¦†ç›–的同名方法是存在于子¾cÕd¯¹çˆ¶ç±»çš„å…³¾pÖM¸­åQŒæ‰€ä»¥åªéœ€åœ¨æ–¹æ³•引用时指明引用的是父类的方法还是子¾cÈš„æ–ÒŽ(gu¨©)³•åQŒå°±å¯ä»¥å¾ˆå®¹æ˜“地把它们区分开来ã€?br /> <br /> </div> <img src ="http://www.aygfsteel.com/shisanfeng/aggbug/191374.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/shisanfeng/" target="_blank">龙震</a> 2008-04-07 22:32 <a href="http://www.aygfsteel.com/shisanfeng/articles/191374.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java 讉K—®æŽ§åˆ¶http://www.aygfsteel.com/shisanfeng/articles/191372.html龙震龙震Mon, 07 Apr 2008 14:30:00 GMThttp://www.aygfsteel.com/shisanfeng/articles/191372.htmlhttp://www.aygfsteel.com/shisanfeng/comments/191372.htmlhttp://www.aygfsteel.com/shisanfeng/articles/191372.html#Feedback0http://www.aygfsteel.com/shisanfeng/comments/commentRss/191372.htmlhttp://www.aygfsteel.com/shisanfeng/services/trackbacks/191372.html
  一个类总能够访问自å·Þqš„æ•°æ®æˆå‘˜å’Œæˆå‘˜æ–¹æ³•ã€?br />   但是åQŒå…¶ä»–类是否能访问这个类的数据成员或成员æ–ÒŽ(gu¨©)³•åQŒæ˜¯ç”Þp¯¥¾cȝš„讉K—®æŽ§åˆ¶½W¦åŠè¯¥ç±»æ•°æ®æˆå‘˜å’Œæˆå‘˜æ–¹æ³•的讉K—®æŽ§åˆ¶½W¦å†³å®šçš„ã€?br />   讉K—®æŽ§åˆ¶½W¦æ˜¯ä¸€¾l„限定类、数据成员或成员æ–ÒŽ(gu¨©)³•是否可以被其他类讉K—®çš„修饰符ã€?br />   ¾cȝš„讉K—®æŽ§åˆ¶½W¦åªæœ?public 一个,¾~ºçœè®‰K—®æŽ§åˆ¶½W¦æ—¶å…ähœ‰“友好讉K—®”的特性ã€?br />   数据成员和成员方法的讉K—®æŽ§åˆ¶½W¦æœ‰ public、private、protected 和缺省访问控制符½{‰å‡ ¿Uã€?br />
1 公共讉K—®æŽ§åˆ¶½W?public

  Java 的类是通过包的概念来组¾l‡çš„åQŒå®šä¹‰åœ¨åŒä¸€ä¸ªç¨‹åºæ–‡ä»¶ä¸­çš„æ‰€æœ‰ç±»éƒ½å±žäºŽåŒä¸€ä¸ªåŒ…ã€?br />   处于同一个包中的¾c»éƒ½æ˜¯å¯è§çš„åQŒå³å¯ä»¥ä¸éœ€è¦ä“Q何说明而方便地互相讉K—®å’Œå¼•用ã€?br />   而对于不同包中的¾c»ï¼Œä¸€èˆ¬è¯´æ¥ï¼Œå®ƒä»¬ç›æ€º’之间是不可见的,当然也不可能互相引用ã€?br /> ã€€ã€€å½“ä¸€ä¸ªç±»è¢«å£°æ˜ŽäØ“ public æ—Óž¼Œåªè¦åœ¨å…¶ä»–包的程序中使用 import 语句引入˜q™ä¸ª public ¾c»ï¼Œž®±å¯ä»¥è®¿é—®å’Œå¼•用˜q™ä¸ª¾c»ï¼Œåˆ›å¾˜q™ä¸ª¾cȝš„对象åQŒè®¿é—®è¿™ä¸ªç±»å†…部可见的数据成员和引用它的可见的方法ã€?br />
  当一个类的访问控制符ä¸?public æ—Óž¼Œè¡¨æ˜Ž˜q™ä¸ª¾cÖM½œä¸ºæ•´ä½“对其他¾cÀL˜¯å¯è§å’Œå¯ä½¿ç”¨çš„,˜q™ä¸ª¾cÕd°±å…ähœ‰äº†è¢«å…¶ä»–包中的类讉K—®çš„可能性ã€?br />   但是åQŒå¤„于不同包中的 public ¾cÖM½œä¸ºæ•´ä½“对其他¾cÀL˜¯å¯è§çš„,òq¶ä¸ä»£è¡¨è¯¥ç±»çš„æ‰€æœ‰æ•°æ®æˆå‘˜å’Œæˆå‘˜æ–ÒŽ(gu¨©)³•也同时对其他¾cÀL˜¯å¯è§çš„,˜q™å¾—ç”Þp¿™äº›æ•°æ®æˆå‘˜å’Œæˆå‘˜æ–ÒŽ(gu¨©)³•的修饰符来决定ã€?br />   只有å½?public ¾cÈš„æ•°æ®æˆå‘˜å’Œæˆå‘˜æ–¹æ³•的讉K—®æŽ§åˆ¶½W¦ä¹Ÿè¢«å£°æ˜ŽäØ“ public æ—Óž¼Œ˜q™ä¸ª¾cÈš„æ‰€æœ‰ç”¨ public 修饰的数据成员和成员æ–ÒŽ(gu¨©)³•也同时对其他¾cÀL˜¯å¯è§çš„ã€?br />   在程序设计时åQŒå¦‚果希望某个类能作为公共工具供其他的类和程序ä‹É用,则应该把¾cÀLœ¬íw«å’Œ¾cÕd†…的方法都定义æˆ?publicã€?br />
  需要注意的是,数据成员和成员方法的讉K—®æŽ§åˆ¶½W¦è¢«å£°æ˜Žä¸?public æ—Óž¼Œä¼šé€ æˆå®‰å…¨æ€§å’Œž®è£…性的下降åQŒæ‰€ä»¥ä¸€èˆ¬åº”ž®½é‡ž®‘用ã€?br />
2 ¾~ºçœè®‰K—®æŽ§åˆ¶½W?/strong>

  若一个类没有讉K—®æŽ§åˆ¶½W¦ï¼Œè¯´æ˜Žå®ƒå…·æœ‰ç¼ºçœçš„讉K—®æŽ§åˆ¶ç‰ÒŽ(gu¨©)€§ï¼Œ˜q™ç§¾~ºçœçš„访问控制特性称ä¸?#8220;友好讉K—®”ã€?br />   友好讉K—®è§„定只有在同一个包中的对象才能讉K—®å’Œå¼•用这些类åQŒå› æ­¤ï¼Œåˆç§°ä¸ºåŒ…讉K—®æ€§ã€?br />   同理åQŒç±»å†…的数据成员和成员方法如果没有访问控制符来限定,也具æœ?#8220;友好讉K—®”ç‰ÒŽ(gu¨©)€§ï¼Œå®ƒä»¬ä¹Ÿå…·æœ‰åŒ…讉K—®æ€§ï¼Œå¯ä»¥è¢«åŒä¸€ä¸ªåŒ…中的其他¾cÀL‰€è®‰K—®å’Œå¼•用ã€?br />
3 ¿Uæœ‰è®‰K—®æŽ§åˆ¶½W?private

  ç”?private 修饰的数据成员或成员æ–ÒŽ(gu¨©)³•只能被该¾c»è‡ªíw«æ‰€è®‰K—®å’Œä¿®æ”¹ï¼Œè€Œä¸èƒ½è¢«ä»ÖM½•å…¶ä»–¾c»ï¼ˆåŒ…括该类的子¾c»ï¼‰æ¥è®¿é—®å’Œå¼•用ã€?br />   它提供了最高的保护¾U§åˆ«ã€?br />   当其他类希望获取或修改私有成员时åQŒéœ€è¦å€ŸåŠ©äºŽç±»çš„æ–¹æ³•æ¥å®žçŽ°ã€?br />
4 保护讉K—®æŽ§åˆ¶½W?protected

  ç”?protected 修饰的成员变量可以被三种¾cÕd¼•用:该类自èín、与它在同一个包中的其他¾c…R€åœ¨å…¶ä»–包中的该¾cȝš„子类ã€?br />   使用 protected 修饰½W¦çš„主要作用是允许其他包中的它的子类来访问父¾cȝš„特定属性ã€?br />


]]>
Java 消息http://www.aygfsteel.com/shisanfeng/articles/191334.html龙震龙震Mon, 07 Apr 2008 10:48:00 GMThttp://www.aygfsteel.com/shisanfeng/articles/191334.htmlhttp://www.aygfsteel.com/shisanfeng/comments/191334.htmlhttp://www.aygfsteel.com/shisanfeng/articles/191334.html#Feedback0http://www.aygfsteel.com/shisanfeng/comments/commentRss/191334.htmlhttp://www.aygfsteel.com/shisanfeng/services/trackbacks/191334.html
  在面向对象系¾lŸä¸­åQŒå¯¹è±¡é—´çš„相互作用是通过一个对象向另一个对象发送消息的方式来体现的ã€?br />
  在面向对象的½E‹åºä¸­ï¼Œæ¶ˆæ¯ž®±æ˜¯æ•°æ®æˆå‘˜åŠæˆå‘˜æ–¹æ³•的引用ã€?br />
1 消息的概�/strong>

  在面向对象的¾pȝ»Ÿä¸­ï¼ŒæŠ?#8220;è¯äh±‚”æˆ?#8220;命ä×o”抽象æˆ?#8220;消息”åQŒå¯¹è±¡ä¹‹é—´çš„联系是通过消息传递来实现的ã€?br />   当系¾lŸä¸­çš„其他对象请求这个对象执行某个服务时åQŒå®ƒ?y¨­u)®±å“åº”这个请求,完成指定的服务ã€?br />   通常åQŒæˆ‘们把发送消息的对象¿UîCؓ发送者,把接收消息的对象¿UîCؓ接收者ã€?br />   对象间的联系åQŒåªèƒ½é€šè¿‡æ¶ˆæ¯ä¼ é€’来˜q›è¡Œã€?br />   对象也只有在收到消息æ—Óž¼Œæ‰è¢«‹È€‹z»ï¼ŒåŽÕd®Œæˆæ¶ˆæ¯è¦æ±‚的功能ã€?br />
  消息ž®±æ˜¯å‘对象发出服务请求,是对数据成员和成员方法的引用ã€?br />
  它应该含有下˜qîC¿¡æ¯ï¼š

    提供服务的对象标è¯?- 对象å?br />     服务标识 - æ–ÒŽ(gu¨©)³•å?br />     输入信息 - 实际参数
    回答信息 - ˜q”回值或操作¾l“æžœ

  消息å…ähœ‰ä¸‰ä¸ªæ€§è´¨åQ?br />
    同一对象可接收不同åŞ式的多个消息åQŒäñ”生不同的响应ã€?br />     相同形式的消息可以发送给不同对象åQŒæ‰€åšå‡ºçš„响应可以是截然不同的ã€?br />     消息的发送可以不考虑具体的接收者,对象可以响应消息åQŒä¹Ÿå¯ä»¥å¯ÒŽ(gu¨©)¶ˆæ¯ä¸äºˆç†ä¼šï¼Œå¯ÒŽ(gu¨©)¶ˆæ¯çš„响应òq¶ä¸æ˜¯å¿…™åȝš„ã€?br />
2 公有消息和私有消�/strong>

  在面向对象系¾lŸä¸­åQŒæ¶ˆæ¯åˆ†ä¸ÞZ¸¤¾c»ï¼šå…¬æœ‰æ¶ˆæ¯å’Œç§æœ‰æ¶ˆæ¯ã€?br />
  当有一æ‰ÒŽ(gu¨©)¶ˆæ¯åŒå±žäºŽä¸€ä¸ªå¯¹è±¡æ—¶åQšç”±å¤–界对象直接发送给˜q™ä¸ªå¯¹è±¡çš„æ¶ˆæ¯ç§°ä¸ºå…¬æœ‰æ¶ˆæ¯ï¼›å¯¹è±¡è‡ªå·±å‘送给本èín的消息称为私有消息ã€?br />   ¿Uæœ‰æ¶ˆæ¯å¯¹å¤–是不开攄¡š„åQŒå¤–界不必了解它ã€?br />   外界对象只能向此对象发送公有消息,而不能发送私有消息,¿Uæœ‰æ¶ˆæ¯æ˜¯ç”±å¯¹è±¡è‡ªèín发送的ã€?br />
3 特定于对象的消息

  ž®†æ‰€æœ‰èƒ½æ”¯æŒæ­¤å¯¹è±¡å¯æŽ¥æ”¶æ¶ˆæ¯çš„æ–¹æ³•é›†ä¸­åœ¨ä¸€èµøP¼Œå½¢æˆä¸€ä¸ªå¤§æ¶ˆæ¯åQŒæˆä¸ºç‰¹å®šäºŽå¯¹è±¡çš„æ¶ˆæ¯ã€?br />   ˜q™äº›æ¶ˆæ¯è®©å¯¹è±¡æ‰§è¡Œè¿™ä¸ªæ–¹æ³•而不½Ž¡å®ƒå¯èƒ½åšä»€ä¹ˆåŠæ€Žä¹ˆåšã€?br />
  特定于对象的消息可分ä¸ÞZ¸‰¿Uç±»åž‹ï¼š

    可以˜q”回对象内部状态的消息ã€?br />     可以改变对象内部状态的消息ã€?br />     可以做一些特定操作,改变¾pȝ»ŸçŠ¶æ€çš„æ¶ˆæ¯ã€?br />


]]>
Java ¾cÈš„æˆå‘˜æ–ÒŽ(gu¨©)³•http://www.aygfsteel.com/shisanfeng/articles/191333.html龙震龙震Mon, 07 Apr 2008 10:43:00 GMThttp://www.aygfsteel.com/shisanfeng/articles/191333.htmlhttp://www.aygfsteel.com/shisanfeng/comments/191333.htmlhttp://www.aygfsteel.com/shisanfeng/articles/191333.html#Feedback0http://www.aygfsteel.com/shisanfeng/comments/commentRss/191333.htmlhttp://www.aygfsteel.com/shisanfeng/services/trackbacks/191333.html
  成员æ–ÒŽ(gu¨©)³•描述对象所å…ähœ‰çš„功能或操作åQŒåæ˜ å¯¹è±¡çš„è¡ŒäØ“åQŒæ˜¯å…ähœ‰æŸç§ç›¸å¯¹ç‹¬ç«‹åŠŸèƒ½çš„ç¨‹åºæ¨¡å—ã€?br />   它与˜q‡åŽ»æ‰€è¯´çš„å­ç¨‹åºã€å‡½æ•°ç­‰æ¦‚å¿µç›¸å½“ã€?br />   一个类或对象可以有多个成员æ–ÒŽ(gu¨©)³•åQŒå¯¹è±¡é€šè¿‡æ‰§è¡Œå®ƒçš„æˆå‘˜æ–ÒŽ(gu¨©)³•对传来的消息作出响应åQŒå®Œæˆç‰¹å®šçš„功能ã€?br />   成员æ–ÒŽ(gu¨©)³•一旦定义,便可在不同的½E‹åºŒDµä¸­å¤šæ¬¡è°ƒç”¨åQŒæ•…可增强程序结构的清晰度,提高¾~–程效率ã€?br />
1 成员æ–ÒŽ(gu¨©)³•的分¾c?/strong>

  从成员方法的来源看,可将成员æ–ÒŽ(gu¨©)³•åˆ†äØ“åQ?br />
    ¾cÕdº“成员æ–ÒŽ(gu¨©)³•。这是由 Java ¾cÕdº“提供的,用户只要按照 Java 提供的调用格式去使用˜q™äº›æˆå‘˜æ–ÒŽ(gu¨©)³•卛_¯ã€?br />     用户自定义的成员æ–ÒŽ(gu¨©)³•ã€‚è¿™æ˜¯äØ“äº†è§£å†³ç”¨æˆïLš„特定问题åQŒç”±ç”¨æˆ·è‡ªå·±¾~–写的成员方法。程序设计的主要工作ž®±æ˜¯¾~–写用户自定义类、自定义成员æ–ÒŽ(gu¨©)³•ã€?br />
  从成员方法的形式看,可将成员æ–ÒŽ(gu¨©)³•åˆ†äØ“åQ?br />
    无参数成员方法�br />     带参数成员方法�br />
2 声明成员æ–ÒŽ(gu¨©)³•的格å¼?/strong>

  åœ?Java ½E‹åºä¸­ï¼Œæˆå‘˜æ–ÒŽ(gu¨©)³•的声明只能在¾cÖM¸­˜q›è¡ŒåQŒæ ¼å¼å¦‚下:

[修饰½W¦] ˜q”回值的¾cÕdž‹ æˆå‘˜æ–ÒŽ(gu¨©)³•å?形式参数è¡? throw [异常表]
{
  
// è¯´æ˜Žéƒ¨åˆ†
  
// æ‰§è¡Œè¯­å¥éƒ¨åˆ†
}

  成员æ–ÒŽ(gu¨©)³•的声明包括成员方法头和成员方法体两部分ã€?br />
    成员æ–ÒŽ(gu¨©)³•头确定成员方法的名字、åŞ式参数的名字和类型、返回值的¾cÕdž‹ã€è®¿é—®é™åˆ¶å’Œå¼‚常处理½{‰ï¼›
    成员æ–ÒŽ(gu¨©)³•体由包括在花括号内的说明部分和执行语句部分组成,它描˜q°è¯¥æ–ÒŽ(gu¨©)³•功能的实现ã€?br />
  在成员方法头中:

    修饰½W¦ã€‚可以是公共讉K—®æŽ§åˆ¶½W?public、私有访问控制符 private、保护访问控制符 protected ½{‰è®¿é—®æƒé™ä¿®é¥°ç¬¦åQŒä¹Ÿå¯ä»¥æ˜¯é™æ€æˆå‘˜æ–¹æ³•修饰符 static、最¾lˆæˆå‘˜æ–¹æ³•修饰符 final、本地成员方法修饰符 native、抽象成员方法修饰符 abstract½{‰éžè®‰K—®æƒé™ä¿®é¥°½W¦ã€‚访问权限修饰符指出满èƒö什么条件时该成员方法可以被讉K—®ã€‚非讉K—®æƒé™ä¿®é¥°½W¦æŒ‡æ˜Žæ•°æ®æˆå‘˜çš„使用方式ã€?br />     ˜q”回值的¾cÕdž‹ã€‚返回值的¾cÕdž‹ç”?Java 允许的的各种数据¾cÕdž‹å…³é”®å­—(int、float ½{‰ï¼‰æŒ‡æ˜Žæˆå‘˜æ–ÒŽ(gu¨©)³•完成其所定义的功能后åQŒè¿½Ž—结果值的数据¾cÕdž‹ã€‚若成员æ–ÒŽ(gu¨©)³•没有˜q”回å€û|¼Œåˆ™åœ¨˜q”回值的¾cÕdž‹å¤„应写上 void 关键字,以表明该æ–ÒŽ(gu¨©)³•无返回倹{€?br />     成员æ–ÒŽ(gu¨©)³•名。是用户遵åó@标识½W¦å®šä¹‰è§„则命名的标识½W¦ã€?br /> ã€€ã€€ã€€ã€€å½¢å¼å‚æ•°è¡¨ã€‚æˆå‘˜æ–¹æ³•å¯åˆ†äØ“å¸¦å‚æˆå‘˜æ–ÒŽ(gu¨©)³•和无参成员方法两¿Uã€‚对于无参成员方法来说则无åŞ式参数表˜q™ä¸€™å¹ï¼Œä½†æˆå‘˜æ–¹æ³•名后的一对圆括号不可省略åQ›å¯¹äºŽå¸¦å‚成员方法来è¯ß_¼Œå½¢å¼å‚数表指明调用该æ–ÒŽ(gu¨©)³•æ‰€éœ€è¦çš„å‚æ•°ä¸ªæ•°ã€å‚æ•°çš„åå­—åŠå…¶å‚æ•°çš„æ•°æ®ç±»åž‹ï¼Œå…¶æ ¼å¼äØ“åQ?br />
(形式参数¾cÕdž‹1 å½¢å¼å‚æ•°å?,形式参数¾cÕdž‹2 å½¢å¼å‚æ•°å?,)

    throw [异常表]。它指出当该æ–ÒŽ(gu¨©)³•遇到一些方法设计者未曾想到的问题时如何处理ã€?br />
3 æ–ÒŽ(gu¨©)³•体中的局部变é‡?/strong>

  在方法体内可以定义本æ–ÒŽ(gu¨©)³•所使用的变量,˜q™ç§å˜é‡æ˜¯å±€éƒ¨å˜é‡ï¼Œå®ƒçš„生存期与作用域是在本æ–ÒŽ(gu¨©)³•内。也ž®±æ˜¯è¯ß_¼Œå±€éƒ¨å˜é‡åªèƒ½åœ¨æœ¬æ–¹æ³•内有效或可见,¼›Õd¼€æœ¬æ–¹æ³•则˜q™äº›å˜é‡è¢«è‡ªåŠ¨é‡Šæ”¾ã€?br />
  æ–ÒŽ(gu¨©)³•体内定义变量æ—Óž¼Œå˜é‡å‰ä¸èƒ½åŠ ä¿®é¥°½W¦ã€?br />   局部变量在使用前必™åÀL˜Ž¼‹®èµ‹å€û|¼Œå¦åˆ™¾~–译时会出错ã€?br />   在一个方法内部,可以在复合语句中定义变量åQŒè¿™äº›å˜é‡åªåœ¨å¤åˆè¯­å¥ä¸­æœ‰æ•ˆåQŒè¿™¿Uå¤åˆè¯­å¥ä¹Ÿè¢«ç§°ä¸ºç¨‹åºå—ã€?br />
4 成员æ–ÒŽ(gu¨©)³•的返回å€?/strong>

  若方法有˜q”回å€û|¼Œåˆ™åœ¨æ–ÒŽ(gu¨©)³•体中ç”?return 语句指明要返回的倹{€?br />
ã€€ã€€å…¶æ ¼å¼äØ“åQ?br />
return è¡¨è¾¾å¼?

  �br />
return(表达�;

    表达式可以是帔R‡ã€å˜é‡ã€å¯¹è±¡ç­‰ã€?br />
  return 语句后面表达式的数据¾cÕdž‹å¿…须与成员方法头中给出的“˜q”回值的¾cÕdž‹”一致ã€?br />
5 形式参数与实际参�/strong>

  一般来è¯ß_¼Œå¯ä»¥é€šè¿‡ä»¥ä¸‹æ–¹å¼æ¥å¼•用成员方法:

成员æ–ÒŽ(gu¨©)³•å?实参列表)

  在引用成员方法时应注意:

    对于无参成员æ–ÒŽ(gu¨©)³•来说åQŒæ˜¯æ²¡æœ‰å®žé™…参数列表的,但方法名后的括弧不能省略ã€?br />     对于带参数的成员æ–ÒŽ(gu¨©)³•来说åQŒå®žå‚的个数、顺序以及它们的数据¾cÕdž‹å¿…须与åŞ式参数的个数、顺序以及它们的数据¾cÕdž‹ä¿æŒä¸€è‡ß_¼Œå„个实参间用逗号分隔。实参名与åŞ参名可以相同也可以不同ã€?br />     实参也可以是表达式,此时一定要注意使表辑ּçš„æ•°æ®ç±»åž‹ä¸Žå½¢å‚的数据类型相同,或者ä‹É表达式的¾cÕdž‹æŒ?Java ¾cÕdž‹è½¬æ¢è§„则辑ֈ°å½¢å‚指明的数据类型ã€?br />     实参变量对åŞ参变量的数据传递是“å€ég¼ é€?#8221;åQŒå³åªèƒ½ç”±å®žå‚传递给形参åQŒè€Œä¸èƒ½ç”±å½¢å‚传递给实参。程序中执行到引用成员方法时åQŒJava 把实参值拷贝到一个äÍ时的存储区(栈)中,形参的ä“Q何修攚wƒ½åœ¨æ ˆä¸­è¿›è¡Œï¼Œå½“退凸™¯¥æˆå‘˜æ–ÒŽ(gu¨©)³•æ—Óž¼ŒJava 自动清除栈中的内宏V€?br />
6 成员æ–ÒŽ(gu¨©)³•的引用方å¼?/strong>

6.1 æ–ÒŽ(gu¨©)³•语句

  成员æ–ÒŽ(gu¨©)³•ä½œäØ“ä¸€ä¸ªç‹¬ç«‹çš„è¯­å¥è¢«å¼•ç”¨ã€?br />
6.2 æ–ÒŽ(gu¨©)³•表达å¼?/strong>

  成员æ–ÒŽ(gu¨©)³•ä½œäØ“è¡¨è¾¾å¼ä¸­çš„ä¸€éƒ¨åˆ†åQŒé€šè¿‡è¡¨è¾¾å¼è¢«å¼•用ã€?br />
6.3 æ–ÒŽ(gu¨©)³•ä½œäØ“å‚æ•°

  一个成员方法作为另一个成员方法的参数被引用。更为典型的是,在递归的成员方法中åQŒä¸€ä¸ªæˆå‘˜æ–¹æ³•作为它自èín的参数被引用ã€?br />
6.4 通过对象来引�/strong>

  ˜q™é‡Œæœ‰ä¸¤é‡å«ä¹‰ï¼Œä¸€æ˜¯é€šè¿‡å½¢å¦‚“对象å?æ–ÒŽ(gu¨©)³•å?#8221;çš„åŞ式来引用对象åQŒäºŒæ˜¯å½“一个对象作为成员方法的参数æ—Óž¼Œé€šè¿‡˜q™ä¸ªå¯¹è±¡å‚数来引用对象的成员æ–ÒŽ(gu¨©)³•ã€?br />
7 引用成员æ–ÒŽ(gu¨©)³•时应注意的事™å?/strong>

  当一个方法引用另一个方法时åQŒè¿™ä¸ªè¢«å¼•用的方法必™åÀL˜¯å·²ç»å­˜åœ¨çš„æ–¹æ³•ã€?br />   另外åQŒè¿˜è¦è§†è¢«å¼•用的成员æ–ÒŽ(gu¨©)³•存在于何处而做不同的处理ã€?br />
  如果被引用的æ–ÒŽ(gu¨©)³•存在于本文äšg中,而且是本¾cÈš„æ–ÒŽ(gu¨©)³•åQŒåˆ™å¯ç›´æŽ¥å¼•用ã€?br />   如果被引用的æ–ÒŽ(gu¨©)³•存在于本文äšg中,但不是本¾cÈš„æ–ÒŽ(gu¨©)³•åQŒåˆ™è¦è€ƒè™‘¾cȝš„修饰½W¦ä¸Žæ–ÒŽ(gu¨©)³•的修饰符来决定是否能引用ã€?br />   如果被引用的æ–ÒŽ(gu¨©)³•不是本文件的æ–ÒŽ(gu¨©)³•而是 Java ¾cÕdº“的方法,则必™åÕdœ¨æ–‡äšg的开头处ç”?import 命ä×ož®†å¼•用有兛_º“æ–ÒŽ(gu¨©)³•所需要的信息写入本文件中ã€?br />   如果被引用的æ–ÒŽ(gu¨©)³•是用户在其他的文件中自己定义的方法,则必™å»é€šè¿‡åŠ è²ç”¨æˆ·åŒ…çš„æ–¹å¼æ¥å¼•ç”¨ã€?br />
8 成员æ–ÒŽ(gu¨©)³•的递归引用

  成员æ–ÒŽ(gu¨©)³•的递归引用ž®±æ˜¯æŒ‡åœ¨ä¸€ä¸ªæ–¹æ³•中直接或间接引用自íw«çš„æƒ…况ã€?br />
9 static 修饰的静态方�/strong>

  ç”?static 修饰½W¦ä¿®é¥°çš„æ–ÒŽ(gu¨©)³•被称为静态方法,它是属于整个¾cȝš„¾cÀL–¹æ³•ã€?br />   不用 static 修饰½W¦é™å®šçš„æ–ÒŽ(gu¨©)³•åQŒæ˜¯å±žäºŽæŸä¸ªå…·ä½“¾cÕd¯¹è±¡çš„æ–ÒŽ(gu¨©)³•ã€?br />
  static æ–ÒŽ(gu¨©)³•使用特点如下åQ?br />
    static æ–ÒŽ(gu¨©)³•是属于整个类的,它在内存中的代码ŒDµå°†éšç€¾cȝš„定义而分配和装蝲。而非 static 的方法是属于某个对象的方法,当这个对象被创徏æ—Óž¼Œåœ¨å¯¹è±¡å†…存中拥有˜q™ä¸ªæ–ÒŽ(gu¨©)³•的专用代码段ã€?br />     引用静态方法时åQŒå¯ä»¥ä‹É用对象名做前¾~€åQŒä¹Ÿå¯ä»¥ä½¿ç”¨¾cÕdåšå‰¾~€ã€?br />     static æ–ÒŽ(gu¨©)³•只能讉K—® static 数据成员åQŒä¸èƒ½è®¿é—®éž static 数据成员åQŒä½†é?static æ–ÒŽ(gu¨©)³•可以讉K—® static 数据成员ã€?br />     static æ–ÒŽ(gu¨©)³•只能讉K—® static æ–ÒŽ(gu¨©)³•åQŒä¸èƒ½è®¿é—®éž static æ–ÒŽ(gu¨©)³•åQŒä½†é?static æ–ÒŽ(gu¨©)³•可以讉K—® static æ–ÒŽ(gu¨©)³•ã€?br />     main æ–ÒŽ(gu¨©)³•是静态方法。在 Java 的每ä¸?Application ½E‹åºä¸­ï¼Œéƒ½å¿…™åÀLœ‰ä¸”只有一ä¸?main æ–ÒŽ(gu¨©)³•åQŒå®ƒæ˜?Application ½E‹åº˜qè¡Œçš„入口点ã€?br />
10 数学函数¾cÀL–¹æ³?/strong>

  Java ¾cÕdº“提供的实现常用数学函数运½Ž—的标准数学函数æ–ÒŽ(gu¨©)³•åQŒè¿™äº›æ–¹æ³•都æ˜?static æ–ÒŽ(gu¨©)³•ã€?br />
  标准数学函数æ–ÒŽ(gu¨©)³•åœ?Java.lang.Math ¾cÖM¸­åQŒä‹É用方法比较简单,格式如下åQ?br />
¾cÕd.数学函数æ–ÒŽ(gu¨©)³•å?实参列表)

11 final 修饰的最¾lˆæ–¹æ³?/strong>

  ç”?final 修饰½W¦ä¿®é¥°çš„æ–ÒŽ(gu¨©)³•¿UîCؓ最¾lˆæ–¹æ³•,如果某个æ–ÒŽ(gu¨©)³•è¢?final 修饰½W¦æ‰€é™å®šåQŒåˆ™è¯¥ç±»çš„子¾cÕd°±ä¸èƒ½è¦†ç›–父类的方法,即不能再重新定义与此æ–ÒŽ(gu¨©)³•同名的自å·Þqš„æ–ÒŽ(gu¨©)³•åQŒè€Œä»…能ä‹É用从父类¾l§æ‰¿æ¥çš„æ–ÒŽ(gu¨©)³•ã€?br />   使用 final 修饰æ–ÒŽ(gu¨©)³•åQŒå°±æ˜¯äؓ了给æ–ÒŽ(gu¨©)³•“上锁”åQŒé˜²æ­¢ä“Q何ç‘ô承类修改此方法,保证了程序的安全性和正确性ã€?br />
  注意åQšfinal 修饰½W¦ä¹Ÿå¯ç”¨äºŽä¿®é¥°ç±»åQŒè€Œå½“ç”?final 修饰½W¦ä¿®é¥°ç±»æ—Óž¼Œæ‰€æœ‰åŒ…含在 final ¾cÖM¸­çš„æ–¹æ³•,都自动成ä¸?final æ–ÒŽ(gu¨©)³•ã€?br />
12 native 修饰的本地方�/strong>

  修饰½W?native 修饰的方法称为本地方法,此方法ä‹Éç”¨çš„ç›®çš„æ˜¯äØ“äº†å°†å…¶ä»–è¯­è¨€åQˆå¦‚ C、C++、Fortran、汇¾~–ç­‰åQ‰åµŒå…¥åˆ° Java 语言中ã€?br />   ˜q™æ ·åQŒJava 可以充分利用已经存在的其他语­a€çš„程序功能模块,避免重复¾~–程ã€?br />
  åœ?Java ½E‹åºä¸­ä‹Éç”?native æ–ÒŽ(gu¨©)³•时应该特别注意åã^台问题ã€?br />   ç”׃ºŽ native æ–ÒŽ(gu¨©)³•嵌入其他语言书写的模块是以非 Java 字节码的二进制代码åŞ式嵌å…?Java ½E‹åºçš„,而这¿UäºŒ˜q›åˆ¶ä»£ç é€šå¸¸åªèƒ½˜qè¡Œåœ¨ç¼–译生成它的åã^åîC¸ŠåQŒæ‰€ä»¥æ•´ä¸?Java ½E‹åºçš„è·¨òq›_°æ€§èƒ½ž®†å—到限制或破坏åQŒé™¤é?native æ–ÒŽ(gu¨©)³•引入的代码也是跨òq›_°çš„ã€?br />


]]>
Java ¾cÈš„æ•°æ®æˆå‘˜http://www.aygfsteel.com/shisanfeng/articles/191245.html龙震龙震Mon, 07 Apr 2008 06:10:00 GMThttp://www.aygfsteel.com/shisanfeng/articles/191245.htmlhttp://www.aygfsteel.com/shisanfeng/comments/191245.htmlhttp://www.aygfsteel.com/shisanfeng/articles/191245.html#Feedback0http://www.aygfsteel.com/shisanfeng/comments/commentRss/191245.htmlhttp://www.aygfsteel.com/shisanfeng/services/trackbacks/191245.html
1 数据成员的声�/strong>

  数据成员是用来描˜qîCº‹ç‰©çš„静态特征的ã€?br />   一般情况下åQŒå£°æ˜Žä¸€ä¸ªæ•°æ®æˆå‘˜å¿…™åÕdšçš„äº‹æ˜¯ç»™å‡ø™¿™ä¸ªæ•°æ®æˆå‘˜çš„æ ‡è¯†½W¦åƈ指明它所属的数据¾cÕdž‹ã€?br />   声明数据成员æ—Óž¼Œ˜q˜å¯ä»¥ç”¨ä¿®é¥°½W¦å¯¹æ•°æ®æˆå‘˜çš„访问权限作出限制ã€?br />
  数据成员声明格式åQ?br />
[修饰½W¦] æ•°æ®æˆå‘˜¾cÕdž‹ æ•°æ®æˆå‘˜åè¡¨;

    修饰½W¦æ˜¯å¯é€‰çš„åQŒå®ƒæ˜¯æŒ‡è®‰K—®æƒé™ä¿®é¥°½W?public、private、protected 和非讉K—®æƒé™ä¿®é¥°½W?static、final ½{‰ï¼›
    数据成员¾cÕdž‹ž®±æ˜¯è¯¸å¦‚ int、float ½{?Java 允许的各¿Uå®šä¹‰æ•°æ®ç±»åž‹çš„关键字;
    数据成员名表是指一个或多个数据成员名,即用戯‚‡ªå®šä¹‰æ ‡è¯†½W¦ï¼Œå½“同时声明多个数据成员名æ—Óž¼Œå½¼æ­¤é—´ç”¨é€—号分隔ã€?br />
2 static 修饰的静态数据成�/strong>

  ç”?static 修饰½W¦ä¿®é¥°çš„æ•°æ®æˆå‘˜æ˜¯ä¸å±žäºŽä»ÖM½•一个类的具体对象,而是属于¾cȝš„静态数据成员ã€?br />
  其特点如下:

    它被保存在类的内存区的公共存储单元中åQŒè€Œä¸æ˜¯ä¿å­˜åœ¨æŸä¸ªå¯¹è±¡çš„内存区中。因此,一个类的ä“Q何对象访问它æ—Óž¼Œå­˜å–到的都是相同的数倹{€?br />     可以通过¾cÕdåŠ ç‚¹æ“ä½œ½W¦è®¿é—®å®ƒã€?br />     static ¾cÀL•°æ®æˆå‘˜ä»å±žäºŽ¾cȝš„作用域,˜q˜å¯ä»¥ä‹Éç”?public static、private static ½{‰è¿›è¡Œä¿®é¥°ã€‚修饰符不同åQŒå¯è®‰K—®çš„层‹Æ¡ä¹Ÿä¸åŒã€?br />
3 静态数据成员的初始�/strong>

  静态数据成员的初始化可以由用户在定义时˜q›è¡ŒåQŒä¹Ÿå¯ä»¥ç”±é™æ€åˆå§‹åŒ–器来完成ã€?br />   静态初始化器是由关键字 static 引导的一对花括号括è“v的语句块åQŒå…¶ä½œç”¨æ˜¯åœ¨åŠ è²¾cÀL—¶åQŒåˆå§‹åŒ–¾cȝš„静态数据成员ã€?br />
  静态初始化器与构造方法不同,它有以下特点åQ?br />
    静态初始化器用于对¾cȝš„静态数据成员进行初始化。而构造方法用来对新创建的对象˜q›è¡Œåˆå§‹åŒ–ã€?br />     静态初始化器不是方法,没有æ–ÒŽ(gu¨©)³•名、返回值和参数表ã€?br />     静态初始化器是在它所属的¾cÕdŠ è½½åˆ°å†…å­˜æ—¶ç”±¾pȝ»Ÿè°ƒç”¨æ‰§è¡Œçš„,而构造方法是在系¾lŸç”¨ new ˜qç®—½W¦äñ”生新对象时自动执行的ã€?br />
  静态初始化器的格式åQ?br />
static
{
  
// åˆå§‹åŒ–静态数据成å‘?/span>
}

4 final 修饰的最¾lˆæ•°æ®æˆå‘?/strong>

  如果一个类的数据成员用 final 修饰½W¦ä¿®é¥ŽÍ¼Œåˆ™è¿™ä¸ªæ•°æ®æˆå‘˜å°±è¢«é™å®šäؓ最¾lˆæ•°æ®æˆå‘˜ã€?br />   最¾lˆæ•°æ®æˆå‘˜å¯ä»¥åœ¨å£°æ˜Žæ—¶è¿›è¡Œåˆå§‹åŒ–åQŒä¹Ÿå¯ä»¥é€šè¿‡æž„造方法赋å€û|¼Œä½†ä¸èƒ½åœ¨½E‹åºçš„其他地方赋å€û|¼Œå®ƒçš„值在½E‹åºçš„æ•´ä¸ªæ‰§è¡Œè¿‡½E‹ä¸­æ˜¯ä¸èƒ½æ”¹å˜çš„ã€?br />   因此åQŒä¹Ÿå¯ä»¥è¯´ç”¨ final 修饰½W¦ä¿®é¥°çš„æ•°æ®æˆå‘˜æ˜¯æ ‡è¯†ç¬¦å¸”R‡ã€?br />
  ç”?final 修饰½W¦è¯´æ˜Žå¸¸é‡æ—¶åQŒéœ€è¦æ³¨æ„ä»¥ä¸‹å‡ ç‚¹ï¼š

    需要说明常量的数据¾cÕdž‹òq¶æŒ‡å‡ºå¸¸é‡çš„具体倹{€?br />     若一个类有多个对象,而某个数据成员是帔R‡åQŒæœ€å¥½å°†æ­¤å¸¸é‡å£°æ˜ŽäØ“ staticåQŒå³ç”?static final 两个修饰½W¦ä¿®é¥ŽÍ¼Œ˜q™æ ·åšå¯èŠ‚çœ½Iºé—´ã€?br />


]]>
Java ž®è£…机制http://www.aygfsteel.com/shisanfeng/articles/191219.html龙震龙震Mon, 07 Apr 2008 04:07:00 GMThttp://www.aygfsteel.com/shisanfeng/articles/191219.htmlhttp://www.aygfsteel.com/shisanfeng/comments/191219.htmlhttp://www.aygfsteel.com/shisanfeng/articles/191219.html#Feedback0http://www.aygfsteel.com/shisanfeng/comments/commentRss/191219.htmlhttp://www.aygfsteel.com/shisanfeng/services/trackbacks/191219.html
  ž®è£…是面向对象系¾lŸçš„一个重要特性,是抽象数据类型思想的具体体现ã€?br />   在面向对象的½E‹åºè®¾è®¡ä¸­ï¼ŒæŠ½è±¡æ•°æ®¾cÕdž‹æ˜¯ç”¨“¾c?#8221;˜q™ç§¾l“构来代表的åQŒè€?#8220;¾c?#8221;又是面向对象的工具可理解和操¾U늚„ã€?br />
1 ž®è£…的概å¿?/strong>

  ž®è£…也称ä¸ÞZ¿¡æ¯éšè—ï¼Œæ˜¯æŒ‡åˆ©ç”¨æŠ½è±¡æ•°æ®¾cÕdž‹ž®†æ•°æ®å’ŒåŸÞZºŽæ•°æ®çš„æ“ä½œå°è£…åœ¨ä¸€èµøP¼Œä½¿å…¶æž„成一个不可分割的独立实体åQŒæ•°æ®è¢«ä¿æŠ¤åœ¨æŠ½è±¡æ•°æ®ç±»åž‹çš„内部åQŒå°½å¯èƒ½åœ°éšè—å†…部的¾l†èŠ‚åQŒåªä¿ç•™ä¸€äº›å¯¹å¤–接口ä‹É之与外部发生联系ã€?br /> ¾pȝ»Ÿçš„其他部分只有通过包裹在数据外面的被授权的操作来与˜q™ä¸ªæŠ½è±¡æ•°æ®¾cÕdž‹äº¤æµä¸Žäº¤äº’ã€?br /> 也就是说åQŒç”¨æˆäh— éœ€çŸ¥é“对象内部æ–ÒŽ(gu¨©)³•的实现细节,但可以根据对象提供的外部接口åQˆå¯¹è±¡åå’Œå‚敎ͼ‰è®‰K—®è¯¥å¯¹è±¡ã€?br />
  ž®è£…å…ähœ‰ä¸‹è¿°ç‰¹å¾åQ?br />
    在类的定义中讄¡½®è®‰K—®å¯¹è±¡å±žæ€§ï¼ˆæ•°æ®æˆå‘˜åQ‰åŠæ–ÒŽ(gu¨©)³•åQˆæˆå‘˜æ–¹æ³•)的权限,限制本类对象及其他类的对象ä‹É用的范围ã€?br />     提供一个接口来描述其他对象的ä‹É用方法ã€?br />     其他对象不能直接修改本对象所拥有的属性和æ–ÒŽ(gu¨©)³•ã€?br />
  ž®è£…反映了事物的相对独立性ã€?br />   ž®è£…在编½E‹ä¸Šçš„作用是使对象以外的部分不能随意存取对象的内部数据(属性)åQŒä»Žè€Œæœ‰æ•ˆåœ°é¿å…äº†å¤–部错误对它的“交叉感染”ã€?br />   另一斚w¢åQŒå½“对象的内部做了某些修æ”ÒŽ(gu¨©)—¶åQŒç”±äºŽå®ƒåªé€šè¿‡ž®‘量的接口对外提供服务,因此大大减少了内部的修改对外部的影响ã€?br />
  面向对象¾pȝ»Ÿçš„封装单位是对象åQŒç±»æ¦‚念本èín也具有封装的意义åQŒå› ä¸ºå¯¹è±¡çš„ç‰ÒŽ(gu¨©)€§æ˜¯ç”±å®ƒæ‰€å±žçš„¾c»è¯´æ˜Žæ¥æè¿°çš„ã€?br />
2 ¾cȝš„严è°}定义

[¾cÖM¿®é¥°ç¬¦] class ¾cÕd [extends çˆ¶ç±»å] [implements æŽ¥å£åˆ—表]
{
  æ•°æ®æˆå‘˜
  æˆå‘˜æ–ÒŽ(gu¨©)³•
}

  合理åœîC‹É用这些可选项åQŒå¯ä»¥å……分地展示ž®è£…、ç‘ô承和信息隐藏½{‰é¢å‘对象特性ã€?br />
    ¾cÖM¿®é¥°ç¬¦åQˆQualifieråQ‰ï¼šç”¨äºŽè§„定¾cȝš„一些特ŒDŠæ€§ï¼Œä¸»è¦æ˜¯è¯´æ˜Žå¯¹å®ƒçš„讉K—®é™åˆ¶ã€?br />     extends 父类名:指明新定义的¾cÀL˜¯ç”±å·²å­˜åœ¨çš„父¾cÀL´¾ç”Ÿå‡ºæ¥çš„ã€?br />     implements 接口列表åQšJava 本来只支持单¾l§æ‰¿åQŒäؓ了给多重¾l§æ‰¿çš„èÊY件开发提供方便,它提供了˜q™ä¸€æŽ¥å£æœºåˆ¶ã€?br />
3 ¾cÖM¿®é¥°ç¬¦

  ¾cȝš„修饰½W¦ç”¨äºŽè¯´æ˜Žå¯¹å®ƒçš„讉K—®é™åˆ¶åQŒä¸€ä¸ªç±»å¯ä»¥æ²¡æœ‰ä¿®é¥°½W¦ï¼Œä¹Ÿå¯ä»¥æœ‰ public、final、abstract ½{‰å‡ ¿Uä¸åŒçš„修饰½W¦ã€?br />
3.1 无修饰符的情�/strong>

  如果一个类前无修饰½W¦ï¼Œåˆ™è¿™ä¸ªç±»åªèƒ½è¢«åŒä¸€ä¸ªåŒ…里的¾cÖM‹É用ã€?br />   Java 规定åQŒåŒä¸€ä¸ªç¨‹åºæ–‡ä»¶ä¸­çš„æ‰€æœ‰ç±»éƒ½åœ¨åŒä¸€ä¸ªåŒ…中ã€?br />   无修饰符的类可以被同一个程序文件中的类使用åQŒä½†ä¸èƒ½è¢«å…¶ä»–程序文件中的其他包中的¾cÖM‹É用ã€?br />
3.2 public 修饰½W?/strong>

  如果一个类的修饰符æ˜?publicåQŒåˆ™˜q™ä¸ª¾cÀL˜¯å…¬å…±¾c…R€?br />   公共¾cÖM¸ä½†å¯ä¾›å®ƒæ‰€åœ¨åŒ…中的其他¾cÖM‹É用,也可供其他包中的¾cÖM‹É用ã€?br />   在程序中可以ç”?import 语句引用其他包中çš?public ¾c…R€?br />   Java 规定åQŒåœ¨ä¸€ä¸ªç¨‹åºæ–‡ä»¶ä¸­åQŒåªèƒ½å®šä¹‰ä¸€ä¸?public ¾c»ï¼Œå…¶ä½™çš„类可以是无修饰½W¦çš„¾c»ï¼Œä¹Ÿå¯ä»¥æ˜¯ç”?final 修饰½W¦å®šä¹‰çš„æœ€¾lˆç±»åQŒå¦åˆ™ç¼–译时会报错ã€?br />
3.3 final 修饰½W?/strong>

  ç”?final 修饰½W¦ä¿®é¥°çš„¾c»è¢«¿UîCؓ最¾lˆç±»ã€?br />   最¾lˆç±»æ˜¯ä¸èƒ½è¢«ä»ÖM½•å…¶ä»–¾cÀL‰€¾l§æ‰¿çš„ã€?br />
  定义最¾lˆç±»çš„目的有三:

    用来完成某种标准功能。将一个类定义ä¸?final ¾c»ï¼Œåˆ™å¯ä»¥å°†å®ƒçš„内容、属性和功能固定下来åQŒä¸Žå®ƒçš„¾cÕdå½¢æˆ½E›_®šçš„æ˜ ž®„å…³¾p»ï¼Œä»Žè€Œä¿è¯å¼•用这个类时所实现的功能是正确无误的ã€?br />     提高½E‹åºçš„可è¯ÀL€§ã€‚从父类‹z„¡”Ÿå­ç±»åQŒå†ä»Žå­¾cÀL´¾ç”Ÿå­¾c»ï¼Œä½¿èÊY件变得越来越复杂。而在必要的层‹Æ¡ä¸Šè®„¡½® final ¾c»ï¼Œå¯ä»¥æé«˜½E‹åºçš„可è¯ÀL€§ã€?br />     提高安全性。病毒的闯入途径之一是在一些处理关键信息的¾cÖM¸­‹z„¡”Ÿå­ç±»åQŒå†ç”¨å­¾cÕdŽ»æ›¿ä»£åŽŸæ¥çš„ç±»ã€‚ç”±äºŽç”¨ final 修饰½W¦å®šä¹‰çš„¾cÖM¸èƒ½å†‹z„¡”Ÿå­ç±»åQŒæˆªæ–­äº†ç—…毒闯入的途径åQŒå› è€Œæé«˜äº†½E‹åºçš„安全性ã€?br />
3.4 abstract 修饰½W?/strong>

  ç”?abstract 修饰½W¦ä¿®é¥°çš„¾cȝ§°ä¸ºæŠ½è±¡ç±»ã€?br />   抽象¾cÕdˆ»ç”ÖMº†ç ”究对象的公有行为特征,òq‰™€šè¿‡¾l§æ‰¿æœºåˆ¶ž®†è¿™äº›ç‰¹å¾ä¼ é€ç»™å®ƒçš„‹z„¡”Ÿ¾c…R€?br />   其作用在于将许多有关的类¾l„ç»‡åœ¨ä¸€èµøP¼Œæä¾›ä¸€ä¸ªå…¬å…Þqš„基类åQŒäØ“‹z„¡”Ÿå…·ä½“¾cÕd¥ å®šåŸº¼‹€ã€?br />   此外åQŒå½“一个类中出çŽîC¸€ä¸ªæˆ–多个ç”?abstract 修饰½W¦å®šä¹‰çš„æ–ÒŽ(gu¨©)³•æ—Óž¼Œåˆ™å¿…™åÕdœ¨˜q™ä¸ª¾cȝš„前面加上 abstract 修饰½W¦ï¼Œž®†å…¶å®šä¹‰ä¸ºæŠ½è±¡ç±»ã€?br />
3.5 ¾cÖM¿®é¥°ç¬¦ä½¿ç”¨æ³¨æ„äº‹é¡¹

  可以同时使用两个修饰½W¦æ¥ä¿®é¥°ä¸€ä¸ªç±»åQŒå½“使用两个修饰½W¦ä¿®é¥îC¸€ä¸ªç±»æ—Óž¼Œ˜q™äº›ä¿®é¥°½W¦ä¹‹é—´ç”¨½Iºæ ¼åˆ†å¼€åQŒå†™åœ¨å…³é”®å­— class 之前åQŒä¿®é¥°ç¬¦çš„顺序对¾cÈš„æ€§è´¨æ²¡æœ‰ä»ÖM½•影响ã€?br />
  需要注意的是:一个类可以ä¸ÞZ¿®é¥îCØ“ public abstractåQŒä¹Ÿå¯ä»¥è¢«ä¿®é¥îCØ“ public finalåQŒä½†ä¸èƒ½è¢«ä¿®é¥îCØ“ abstract finalåQŒè¿™æ˜¯å› ä¸?abstract ¾c»è‡ªíw«æ²¡æœ‰å¯¹è±¡ï¼Œéœ€è¦æ´¾ç”Ÿå­¾cÕdŽå†åˆ›å»ºå­¾cȝš„对象åQŒè€?final ¾cÖM¸èƒ½æ´¾ç”Ÿå­¾c»ï¼Œæ‰€ä»¥ä¸å­˜åœ¨ç”?abstract final 两个修饰½W¦ä¿®é¥°çš„¾c…R€?br />


]]>
Java ¾cÖM¸Žå¯¹è±¡çš„æ¦‚å¿?/title><link>http://www.aygfsteel.com/shisanfeng/articles/191023.html</link><dc:creator>龙震</dc:creator><author>龙震</author><pubDate>Sun, 06 Apr 2008 05:10:00 GMT</pubDate><guid>http://www.aygfsteel.com/shisanfeng/articles/191023.html</guid><wfw:comment>http://www.aygfsteel.com/shisanfeng/comments/191023.html</wfw:comment><comments>http://www.aygfsteel.com/shisanfeng/articles/191023.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/shisanfeng/comments/commentRss/191023.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/shisanfeng/services/trackbacks/191023.html</trackback:ping><description><![CDATA[<div style="font-size: 12px"><br />   在一个面向对象系¾lŸä¸­åQ?br /> <br />     对象是对现实世界中事物的抽象åQŒæ˜¯ Java ½E‹åºçš„基本封装单位,是类的实例;<br />     ¾cÀL˜¯å¯¹è±¡çš„æŠ½è±¡ï¼Œæ˜¯æ•°æ®å’Œæ“ä½œçš„封装体åQ?br />     属性是事物静态特征的抽象åQŒåœ¨½E‹åºä¸­ç”¨æ•°æ®æˆå‘˜åŠ ä»¥æè¿°åQ?br />     操作是事物动态特征的抽象åQŒåœ¨½E‹åºä¸­ç”¨æˆå‘˜æ–ÒŽ(gu¨©)³•来实现ã€?br /> <br />   把客观世界中的事物映ž®„到面向对象的程序设计中ž®±æ˜¯å¯¹è±¡ã€?br />   对象是面向对象程序设计中用来描述客观事物的程序单位ã€?br />   客观世界中的许多对象åQŒæ— è®ºå…¶å±žæ€§è¿˜æ˜¯å…¶è¡ŒäØ“å¸¸å¸¸æœ‰è®¸å¤šå…±åŒæ€§ï¼ŒæŠ½è±¡å‡ø™¿™äº›å¯¹è±¡çš„共同性便可以构成¾c…R€?br />   ¾cÀL˜¯å¯¹è±¡çš„æŠ½è±¡å’Œå½’纳åQŒå¯¹è±¡æ˜¯¾cȝš„实例ã€?br /> <br /> <strong>1. 抽象原则</strong><br /> <br />   抽象åQˆAbstractionåQ‰å°±æ˜¯ä»Žè¢«ç ”½I¶å¯¹è±¡ä¸­èˆå¼ƒä¸ªåˆ«çš„、非本质的、或与研½I¶ä¸»æ—¨æ— å…³çš„‹Æ¡è¦ç‰¹å¾åQŒè€ŒæŠ½å–与研究工作有关的实质性内容加以考察åQŒåŞ成对所研究问题正确的、简明扼要的认识ã€?br /> <br /> <strong>1.1 ˜q‡ç¨‹æŠ½è±¡</strong><br /> <br />   软äšg开发者可以把ä»ÖM½•一个完成确定功能的操作序列都看作是一个单一的实体,ž®½ç®¡å®ƒå®žé™…上可能是由一¾pÕdˆ—更低¾U§çš„æ“ä½œå®Œæˆçš„ã€?br />   ˜q‡ç¨‹æŠ½è±¡å¯ä»¥æŠŠå¤æ‚的功能一层层分解为更½Ž€å•的子模块,˜q™æ ·å¼€å‘者可在不同层‹Æ¡ä¸Šè€ƒè™‘问题åQŒå¦‚在高层上ž®×ƒ¸å¿…关心低层的¾l†èŠ‚é—®é¢˜ã€?br /> <br />   面向˜q‡ç¨‹çš„程序设计采用的是过½E‹æŠ½è±¡æ–¹æ³•ã€?br /> <br />   ˜q‡ç¨‹æŠ½è±¡æœ‰åˆ©äºŽæŽ§åˆ¶ã€é™ä½Žæ•´ä¸ªç¨‹åºçš„复杂度,但是åQŒè¿™¿Uæ–¹æ³•允许在全系¾lŸçš„范围内进行功能的描述åQŒæœ¬íw«è‡ªç”±åº¦å¤§ï¼Œéš¾äºŽè§„范化和标准化,不易保证软äšg的质量,而且操作èµäh¥ä¹Ÿæœ‰ä¸€å®šéš¾åº¦ã€?br /> <br /> <strong>1.2 数据抽象</strong><br /> <br />   数据抽象把系¾lŸä¸­éœ€è¦å¤„理的数据和施加于˜q™äº›æ•°æ®ä¹‹ä¸Šçš„æ“ä½œç»“åˆåœ¨ä¸€èµøP¼Œæ ÒŽ(gu¨©)®åŠŸèƒ½ã€æ€§è´¨ã€ä½œç”¨ç­‰å› ç´ æŠ½è±¡æˆä¸åŒçš„æŠ½è±¡æ•°æ®¾cÕdž‹ã€?br />   每个抽象数据¾cÕdž‹æ—¢åŒ…含了数据åQŒä¹ŸåŒ…含了针对这些数据的授权操作åQŒåƈ限定数据的值只能由˜q™äº›æ“ä½œæ¥è§‚察和修改ã€?br />   因此åQŒæ•°æ®æŠ½è±¡æ˜¯ç›¸å¯¹äºŽè¿‡½E‹æŠ½è±¡æ›´ä¸ÞZ¸¥æ ¹{€æ›´ä¸ºåˆç†çš„æŠ½è±¡æ–ÒŽ(gu¨©)³•ã€?br /> <br />   面向对象½E‹åºè®¾è®¡ž®±æ˜¯é‡‡ç”¨æ•°æ®æŠ½è±¡˜q™ä¸€æ–ÒŽ(gu¨©)³•来构建程序中的类和对象的ã€?br /> ã€€ã€€å®ƒå¼ºè°ƒæŠŠæ•°æ®å’Œæ“ä½œç»“åˆäØ“ä¸€ä¸ªä¸å¯åˆ†çš„ç³»¾lŸå•ä½?- 对象åQŒå¯¹è±¡çš„外部只需要知道这个对象能做什么,而不必知道它是如何做的ã€?br /> <br /> <strong>2. 对象</strong><br /> <br />   把客观世界这一事实映射到面向对象的½E‹åºè®¾è®¡ä¸­ï¼Œåˆ™æŠŠé—®é¢˜åŸŸä¸­çš„事物抽象成了对象(ObjectåQ‰ï¼Œäº‹ç‰©çš„静态特征(属性)用一¾l„数据来描述åQŒäº‹ç‰©çš„åŠ¨æ€ç‰¹å¾ï¼ˆè¡ŒäØ“åQ‰åˆ™ç”¨ä¸€¾l„方法来åˆÈ”»ã€?br /> <br />   对象å…ähœ‰ä»¥ä¸‹ç‰¹å¾åQ?br /> <br />     对象标识åQšå³å¯¹è±¡çš„名字,是用户和¾pȝ»Ÿè¯†åˆ«å®ƒçš„唯一标志。对象标识有“外部标识”å’?#8220;内部标识”之分。外部标识供对象的定义者或使用者用åQŒå†…部标识供¾pȝ»Ÿå†…部唯一地识别每一个对象。在计算æœÞZ¸–界中åQŒå¯ä»¥æŠŠå¯¹è±¡çœ‹æˆè®¡ç®—机存储器中一块可标识的区域,它能保存固定或可变数目的数据åQˆæˆ–数据的集合)ã€?br /> <br />     属性:即一¾l„数据,用来描述对象的静态特征。在 Java ½E‹åºä¸­ï¼ŒæŠŠè¿™ä¸€¾l„数据称为数据成员ã€?br /> <br />     æ–ÒŽ(gu¨©)³•åQšä¹Ÿ¿UîCØ“æœåŠ¡æˆ–æ“ä½œï¼Œå®ƒæ˜¯å¯¹è±¡åŠ¨æ€ç‰¹å¾ï¼ˆè¡ŒäØ“åQ‰çš„æè¿°ã€‚每一个方法确定对象的一¿Uè¡Œä¸ºæˆ–功能。在 Java ½E‹åºä¸­ç§°ä¸ºæˆå‘˜æ–¹æ³•ã€?br /> <br />   åœ?Java ½E‹åºä¸­ï¼Œ¾cÀL˜¯åˆ›å¾å¯¹è±¡çš„æ¨¡æ¿ï¼Œå¯¹è±¡æ˜¯ç±»çš„实例,ä»ÖM½•一个对象都是隶属于某个¾cȝš„ã€?br />   Java ½E‹åºè®¾è®¡æ˜¯ä»Ž¾cȝš„设计开始的ã€?br /> <br /> <strong>3. ¾c?/strong><br /> <br />   在面向对象的¾~–程语言中,¾cÀL˜¯ä¸€ä¸ªç‹¬ç«‹çš„½E‹åºå•位åQŒæ˜¯å…ähœ‰ç›¸åŒå±žæ€§å’Œæ–ÒŽ(gu¨©)³•的一¾l„对象的集合ã€?br />   ¾cÈš„æ¦‚念使我们能对属于该¾cȝš„全部对象˜q›è¡Œ¾lŸä¸€çš„æ˜q°ã€?br /> <br />   在定义对象之前应先定义类ã€?br /> <br />   描述一个类需要指明下˜qîC¸‰ä¸ªæ–¹é¢å†…容:<br /> <br />     ¾cÀL ‡è¯†ï¼š¾cȝš„一个有别于其他¾cȝš„名字ã€?br /> <br />     属性说明:用来描述相同对象的静态特征ã€?br /> <br />     æ–ÒŽ(gu¨©)³•说明åQšç”¨æ¥æ˜q°ç›¸åŒå¯¹è±¡çš„动态特征ã€?br /> <br /> <strong>4. ¾cÖM¸Žå¯¹è±¡çš„å…³¾p?/strong><br /> <br />   ¾cȝ»™å‡ÞZº†å±žäºŽè¯¥ç±»çš„全部对象的抽象定义åQŒè€Œå¯¹è±¡åˆ™æ˜¯ç¬¦åˆè¿™¿Uå®šä¹‰çš„一个实体ã€?br />   可以把类与对象之间的关系看成是抽象与具体的关¾p…R€?br />   在面向对象的½E‹åºè®¾è®¡ä¸­ï¼Œå¯¹è±¡è¢«ç§°ä½œç±»çš„一个实例(InstanceåQ‰ï¼Œè€Œç±»æ˜¯å¯¹è±¡çš„æ¨¡æ¿åQˆTemplateåQ‰ã€?br />   ¾cÀL˜¯å¤šä¸ªå®žä¾‹çš„综合抽象,而实例又是类的个体实物ã€?br /> <br />   ç”׃ºŽå¯¹è±¡æ˜¯ç±»çš„实例,因此在定义对象之前应先定义类。在定义了类之后åQŒæ‰å¯ä»¥åœ¨ç±»çš„基¼‹€ä¸Šåˆ›å»ºå¯¹è±¡ã€?br /> <br /> <strong>5. 定义¾cȝš„一般格å¼?/strong><br /> <br />   ˜q›è¡Œ Java ½E‹åºè®¾è®¡åQŒå®žé™…上ž®±æ˜¯å®šä¹‰¾cȝš„˜q‡ç¨‹ã€?br />   一ä¸?Java 源程序文件往往是由许多个类¾l„成的ã€?br /> <br />   从用æˆïLš„角度看,Java æºç¨‹åºä¸­çš„ç±»åˆ†äØ“ä¸¤ç§åQ?br /> <br />     ¾pȝ»Ÿå®šä¹‰çš„ç±»åQšå³ Java ¾cÕdº“åQŒå®ƒæ˜¯ç³»¾lŸå®šä¹‰å¥½çš„类。Java 语言ç”Þp¯­æ³•规则和¾cÕdº“两部分组成,语法规则¼‹®å®š Java ½E‹åºçš„书写规范;¾cÕdº“则提供了 Java ½E‹åºä¸Žè¿è¡Œå®ƒçš„ç³»¾lŸèÊYä»Óž¼ˆJava 虚拟机)之间的接口ã€?br /> <br />     用户自定义类åQšç³»¾lŸå®šä¹‰çš„¾c»è™½ç„¶å®žçŽîCº†è®¸å¤šå¸¸è§çš„功能,但是用户½E‹åºä»ç„¶éœ€è¦é’ˆå¯¹ç‰¹å®šé—®é¢˜çš„特定逻辑来定义自å·Þqš„¾c…R€?br /> <br />   åœ?Java ½E‹åºä¸­ï¼Œç”¨æˆ·è‡ªå®šä¹‰ç±»çš„一般格式如下:<br /> <br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">class</span><span style="color: #000000"> ¾cÕd<br /> {<br />   æ•°æ®æˆå‘˜<br />   æˆå‘˜æ–ÒŽ(gu¨©)³•<br /> }</span></div> <br />     ¾cȝš„¾l“构是由¾c»è¯´æ˜Žå’Œ¾cÖM½“两部分组成的ã€?br />     ¾cȝš„说明部分由关键字 class 与类名组成,¾cÕdçš„命名遵å¾?Java 标识½W¦çš„定义规则ã€?br />     ¾cÖM½“是类声明中花括号所包括的全部内容,它又是由数据成员åQˆå±žæ€§ï¼‰å’Œæˆå‘˜æ–¹æ³•(æ–ÒŽ(gu¨©)³•åQ‰ä¸¤éƒ¨åˆ†¾l„成ã€?br />     数据成员描述对象的属性;成员æ–ÒŽ(gu¨©)³•则刻ç”Õd¯¹è±¡çš„è¡ŒäØ“æˆ–åŠ¨ä½œï¼Œæ¯ä¸€ä¸ªæˆå‘˜æ–¹æ³•ç¡®å®šä¸€ä¸ªåŠŸèƒ½æˆ–æ“ä½œã€?br /> <br /> <strong>6. Java ¾cÕdº“</strong><br /> <br />   Java 的类库是¾pȝ»Ÿæä¾›çš„已实现的标准类的集合,æ˜?Java ¾~–程çš?APIåQˆApplication Program InterfaceåQ‰ï¼Œå®ƒå¯ä»¥å¸®åŠ©å¼€å‘è€…æ–¹ä¾Ñ€å¿«æ·åœ°å¼€å?Java ½E‹åºã€?br />   Java 基础¾cÕdº“åQˆJFCåQ‰æ˜¯ç”?Sun 公司提供的,也有ž®‘量则是由其他èÊY件开发商以商品åŞ式提供的ã€?br /> <br />   学习 Java 语言½E‹åºè®¾è®¡åQŒä¸€æ˜¯è¦å­¦ä¹ å…¶è¯­æ³•规则中的基本数据类型、基本运½Ž—和基本语句½{‰ï¼Œ˜q™æ˜¯¾~–写 Java ½E‹åºçš„基本功åQ›äºŒæ˜¯è¦å­¦ä¹ ä½¿ç”¨¾cÕdº“åQŒè¿™æ˜¯æé«˜ç¼–½E‹æ•ˆçŽ‡å’Œè´¨é‡çš„å¿…ç”׃¹‹è·¯ï¼Œç”šè‡³ä»Žä¸€å®šç¨‹åº¦ä¸Šæ¥è¯´åQŒèƒ½å¦ç†Ÿ¾lƒè‡ªå¦‚地掌握ž®½å¯èƒ½å¤šçš?Java ¾cÕdº“åQŒå†³å®šäº†ä¸€ä¸?Java ½E‹åºå‘˜ç¼–½E‹èƒ½åŠ›çš„é«˜ä½Žã€?br /> <br />   åœ?Java ¾pȝ»Ÿä¸­ï¼Œ¾pȝ»Ÿå®šä¹‰å¥½çš„¾cÀL ¹æ®å®žçŽ°çš„åŠŸèƒ½ä¸åŒåQŒå¯ä»¥åˆ’分成不同的集合。每个集合称ä¸ÞZ¸€ä¸ªåŒ…åQŒæ‰€æœ‰åŒ…¿UîCØ“¾cÕdº“。根据功能的不同åQŒJava ¾cÕdº“的每个包中都有若òq²ä¸ªå…ähœ‰ç‰¹å®šåŠŸèƒ½å’Œç›¸äº’å…³¾pȝš„¾cÕd’ŒæŽ¥å£ã€?br /> <br />   使用¾cÕdº“中系¾lŸå®šä¹‰å¥½çš„类有三¿Uæ–¹å¼ï¼šä¸€æ˜¯ç›´æŽ¥ä‹É用系¾lŸç±»åQ›äºŒæ˜¯ç‘ô承系¾lŸç±»åQŒåœ¨ç”¨æˆ·½E‹åºé‡Œåˆ›å»ºç³»¾lŸç±»çš„子¾c»ï¼›ä¸‰æ˜¯åˆ›å¾¾pȝ»Ÿ¾cȝš„对象ã€?br />   无论采用哪种方式åQŒä‹É用系¾lŸç±»çš„前提条件是˜q™ä¸ª¾pȝ»Ÿ¾cÕdº”该是用户½E‹åºå¯è§çš„ç±»ã€‚äØ“æ­¤ç”¨æˆïL¨‹åºéœ€è¦ç”¨ import 语句引入它所用到的系¾lŸç±»æˆ–ç³»¾lŸç±»æ‰€åœ¨çš„包ã€?br /> <br />   ¾cÕdº“包中的程序都是字节码形式的程序,利用 import 语句ž®†ä¸€ä¸ªåŒ…引入到程序里åQŒå°±ç›¸å½“于在¾~–译˜q‡ç¨‹ä¸­å°†è¯¥åŒ…中的所有系¾lŸç±»çš„字节码加入到用æˆïLš„ Java ½E‹åºä¸­ï¼Œ˜q™æ ·ç”¨æˆ·çš?Java ½E‹åºž®±å¯ä»¥ä‹É用这些系¾lŸç±»åŠå…¶ä¸­çš„各种功能了ã€?br /> <br />   Java ½E‹åºå¸¸ç”¨çš„包åQ?br /> <br /> <strong>  java.lang åŒ?/strong><br /> <br />     Java 语言的核心类库,包含了运è¡?Java ½E‹åºå¿…不可少的系¾lŸç±»åQŒå¦‚基本数据¾cÕdž‹ã€åŸºæœ¬æ•°å­¦å‡½æ•°ã€å­—½W¦ä¸²å¤„理、线½E‹ã€å¼‚常处理类½{‰ã€?br />     每个 Java ½E‹åº˜qè¡Œæ—Óž¼Œ¾pȝ»Ÿéƒ½ä¼šè‡ªåŠ¨åœ°å¼•å…?java.lang 包,所以这个包的加载是¾~ºçœçš„ã€?br /> <br /> <strong>  java.io åŒ?/strong><br /> <br />     包含了实çŽ?Java ½E‹åºä¸Žæ“ä½œç³»¾lŸã€ç”¨æˆïL•Œé¢ä»¥åŠå…¶ä»?Java ½E‹åºä¹‹é—´˜q›è¡Œæ•°æ®äº¤æ¢æ‰€ä½¿ç”¨çš„ç±»åQŒå¦‚基本输入/输出‹¹ã€æ–‡ä»¶è¾“å…?输出‹¹ã€è¿‡æ»¤è¾“å…?输出‹¹ã€ç®¡é“输å…?输出‹¹ã€éšæœø™¾“å…?输出‹¹ç­‰ã€?br />     凡是需要完成与操作¾pȝ»Ÿæœ‰å…³çš„较底层的输å…?输出操作çš?Java ½E‹åºåQŒéƒ½è¦ç”¨åˆ?java.io 包ã€?br /> <br /> <strong>  java.awt åŒ?/strong><br /> <br />     它是 Java 语言用来构徏囑ÖŞ用户界面åQˆGUIåQ‰çš„¾cÕdº“åQŒåŒ…括了许多界面元素和资源ã€?br />     java.awt 包主要在三个斚w¢æä¾›ç•Œé¢è®¾è®¡æ”¯æŒåQšä¸€æ˜¯ä½Ž¾U§ç»˜å›¾æ“ä½œï¼›äºŒæ˜¯å›‘ÖŞ界面¾l„äšg和布局½Ž¡ç†åQ›ä¸‰æ˜¯ç•Œé¢ç”¨æˆ·äº¤äº’控制和事äšg响应ã€?br /> <br /> <strong>  java.awt.event åŒ?/strong><br /> <br />     它是å¯?JDK 1.0 版本中原有的 Event ¾cȝš„一个扩充,它ä‹É得程序可以用不同的方式来处理不同¾cÕdž‹çš„事ä»Óž¼Œòq¶ä‹É每个囑ÖŞ界面的元素本íw«å¯ä»¥æ‹¥æœ‰å¤„理它上面事äšg的能力ã€?br /> <br /> <strong>  java.awt.image åŒ?/strong><br /> <br />     用来处理和操作来自于¾|‘上的图片的 Java 工具¾cÕdº“ã€?br /> <br /> <strong>  java.applet åŒ?/strong><br /> <br />     用来实现˜qè¡Œäº?Internet ‹¹è§ˆå™¨ä¸­çš?Java Applet 的工å…ïL±»åº“,它仅包含ž®‘量几个接口和一个非常有用的¾c?java.applet.Appletã€?br /> <br /> <strong>  java.net åŒ?/strong><br /> <br />     它是 Java 语言用来实现¾|‘络功能的类库ã€?br />     目前已经实现çš?Java ¾|‘络功能主要有:底层¾|‘络通信åQ›ç¼–写用戯‚‡ªå·Þqš„ Telnet、FTP、邮件服务等实现¾|‘上通信的类åQ›ç”¨äºŽè®¿é—?Internet 上资源和˜q›è¡Œ CGI ¾|‘关调式的类ã€?br />     利用 java.net 包中的类åQŒå¼€å‘者可以编写自å·Þqš„å…ähœ‰¾|‘络功能的程序ã€?br /> <br /> <strong>  java.rmi 包、java.rmi.registry 包和 java.rmi.server åŒ?/strong><br /> <br />     ˜q™ä¸‰ä¸ªåŒ…用来实现 RMIåQˆRemote Method InvocationåQŒè¿œ½E‹æ–¹æ³•调用)功能ã€?br />     利用 RMI 功能åQŒç”¨æˆïL¨‹åºå¯ä»¥åœ¨˜qœç¨‹è®¡ç®—机(服务器)上创建对象,òq¶åœ¨æœ¬åœ°è®¡ç®—机(客户机)上ä‹É用这个对象ã€?br /> <br /> <strong>  java.util åŒ?/strong><br /> <br />     包括äº?Java 语言中的一些低¾U§çš„实用工具åQŒå¦‚æ—‰™—´çš„处理、变长数¾l„的处理、栈和哈希(散列åQ‰è¡¨çš„处理ã€?br /> <br /> <strong>  java.sql åŒ?/strong><br /> <br />     它是实现 JDBCåQˆJava Database ConnectionåQ‰çš„¾cÕdº“ã€?br />     利用˜q™ä¸ªåŒ…可以ä‹É Java ½E‹åºå…ähœ‰è®‰K—®ä¸åŒ¿Uç±»çš„æ•°æ®åº“的功能ã€?br />     只要安装了合适的驱动½E‹åºåQŒåŒä¸€ä¸?Java ½E‹åºä¸éœ€è¦ä¿®æ”¹å°±å¯ä»¥å­˜å–、修改这些不同的数据库中的数据ã€?br />     JDBC 的这¿UåŠŸèƒ½ï¼Œå†åŠ ä¸?Java ½E‹åºæœ¬èínå…ähœ‰çš„åã^台无å…Ïx€§ï¼Œå¤§å¤§æ‹“宽äº?Java ½E‹åºçš„应用范å›ß_¼Œç‰¹åˆ«æ˜¯å•†ä¸šåº”用的使用领域ã€?br /> <br /> <strong>  java.security 包、java.security.acl 包、java.security.interfaces åŒ?/strong><br /> <br />     ˜q™ä¸‰ä¸ªåŒ…提供更完善的 Java ½E‹åºå®‰å…¨æ€§æŽ§åˆ¶å’Œ½Ž¡ç†åQŒåˆ©ç”¨å®ƒä»¬å¯ä»¥å¯¹ Java ½E‹åºåР坆åQŒä¹Ÿå¯ä»¥æŠŠç‰¹å®šçš„ Java Applet 标记ä¸?#8220;可信赖的”åQŒä‹É它能够具有与 Java Application 相近的安全权限ã€?br /> <br /> <strong>  java.awt.peer åŒ?/strong><br /> <br />     它是实现 Java 语言跨åã^台特性的手段之一ã€?br />     其作用是ž®†ä¸åŒçš„òq›_°åŒ…裹、隐藏è“v来,使这些åã^台在用户½E‹åºé¢å‰å‘ˆçŽ°åŸºæœ¬ç›¸åŒçš„é¢è²Œã€?br /> <br /> <strong>  java.util.zip åŒ?/strong><br /> <br />     用来实现文äšg压羃功能ã€?br /> <br /> <strong>  java.awt.datatransfer åŒ?/strong><br /> <br />     提供了处理数据传输的工具¾c»ï¼Œå¦‚剪贴版、字½W¦ä¸²å‘送器½{‰ã€?br /> <br /> <strong>  java.lang.reflect åŒ?/strong><br /> <br />     提供了用于反ž®„对象的工具åQŒåž®„允许程序监视一个正在运行的对象òq¶èŽ·å¾—å®ƒçš„æž„é€ å‡½æ•°ã€æ–¹æ³•å’Œå±žæ€§ã€?br /> <br /> <strong>  java.corba 包、java.corba.orb åŒ?/strong><br /> <br />     ˜q™ä¸¤ä¸ªåŒ…ž®?CORBAåQˆCommon Object Request Broker ArchitectureåQŒä¸€¿Uæ ‡å‡†åŒ–接口体系åQ‰åµŒå…¥åˆ° Java 环境中,使得 Java ½E‹åºå¯ä»¥å­˜å–、调ç”?CORBA 对象åQŒåƈä¸?CORBA 对象共同工作ã€?br />     ˜q™æ ·åQŒJava ½E‹åºž®±å¯ä»¥æ–¹ä¾Ñ€åŠ¨æ€åœ°ä½¿ç”¨å·²ç»å­˜åœ¨çš„ç”± Java 或其他面向对象语­a€å¼€å‘的部äšgåQŒç®€åŒ–èÊY件的开发ã€?br /> <br /> <strong>7. 创徏对象</strong><br /> <br /> <strong>7.1 声明对象</strong><br /> <br />   声明对象ž®±æ˜¯¼‹®å®šå¯¹è±¡çš„名¿UŽÍ¼Œòq¶æŒ‡æ˜Žè¯¥å¯¹è±¡æ‰€å±žçš„¾c…R€?br />   声明格式如下åQ?br /> <br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">¾cÕd å¯¹è±¡åè¡¨;</span></div> <br />     ¾cÕdæ˜¯æŒ‡å¯¹è±¡æ‰€å±žç±»çš„名字,它是在声明类时定义的åQ?br /> ã€€ã€€ã€€ã€€å¯¹è±¡åè¡¨æ˜¯æŒ‡ä¸€ä¸ªæˆ–å¤šä¸ªå¯¹è±¡åï¼Œè‹¥äØ“å¤šä¸ªå¯¹è±¡åæ—¶åQŒç”¨é€—号˜q›è¡Œåˆ†éš”ã€?br /> <br />   声明对象的作用是为将来的¾~–译˜q‡ç¨‹æä¾›å¿…要的信息ã€?br /> <br /> <strong>7.2 建立对象</strong><br /> <br />   建立对象åQŒå®žé™…上ž®±æ˜¯ç”?Java 提供çš?new å…³é”®å­—äØ“å¯¹è±¡åˆ†é…å­˜å‚¨½Iºé—´ã€?br />   在声明对象时åQŒåª¼‹®å®šäº†å¯¹è±¡çš„名称和它所属的¾c»ï¼Œòq¶æ²¡æœ‰äؓ对象分配存储½Iºé—´åQŒæ­¤æ—¶å¯¹è±¡è¿˜ä¸æ˜¯¾cȝš„实例ã€?br />   只有通过建立对象˜q™ä¸€æ­¥ï¼Œæ‰äؓ对象分配内存åQŒä‹É该对象成为类的实例ã€?br />   建立对象的格式如下:<br /> <br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">对象å?/span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> æž„造方æ³?);</span></div> <br />   也可以在声明对象的同时徏立对象,˜q™ç§°ä¸ºåˆ›å»ÞZ¸€ä¸ªå¯¹è±¡ï¼Œå…¶æ ¼å¼å¦‚下:<br /> <br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">¾cÕd å¯¹è±¡å?/span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> æž„造方æ³?);</span></div> <br />   关键å­?new 的作用是建立对象åQŒäؓ对象分配存储½Iºé—´ã€?br /> <br /> <strong>7.3 初始化对è±?/strong><br /> <br />   初始化对象是指由一个类生成对象æ—Óž¼Œä¸ø™¿™ä¸ªå¯¹è±¡ç¡®å®šåˆå§‹çŠ¶æ€ï¼Œå³äØ“å®ƒçš„æ•°æ®æˆå‘˜èµ‹åˆå§‹å€¼çš„˜q‡ç¨‹åQŒå½“ç„Óž¼Œå®ƒä¸»è¦ç”±ä¸€äº›èµ‹å€ÆD¯­å¥ç»„成ã€?br />   ç”׃ºŽåˆå§‹åŒ–操作是最常用的操作之一åQŒäØ“½Ž€åŒ–这一˜q‡ç¨‹åQŒJava ˜q˜æä¾›äº†ä¸“用的方法来完成它,˜q™ä¸ªæ–ÒŽ(gu¨©)³•被称为构造方法ã€?br /> <br /> <strong>8 使用对象</strong><br /> <br />   一个对象可以有许多属性和多个æ–ÒŽ(gu¨©)³•ã€?br />   在面向对象的¾pȝ»Ÿä¸­ï¼Œä¸€ä¸ªå¯¹è±¡çš„属性和æ–ÒŽ(gu¨©)³•被紧密地¾l“合成一个整体,二者是不可分割的,òq¶ä¸”限定一个对象的属性值只能由˜q™ä¸ªå¯¹è±¡æˆ–它的方法来è¯Õd–和修攏V€?br />   当一个对象被创徏后,˜q™ä¸ªå¯¹è±¡ž®±æ‹¥æœ‰äº†è‡ªå·±çš„æ•°æ®æˆå‘˜å’Œæˆå‘˜æ–ÒŽ(gu¨©)³•åQŒæˆ‘们可以通过引用对象的成员来使用对象ã€?br /> <br />   对象的数据成员的引用方式如下åQ?br /> <br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">对象å?数据成员å?</span></div> <br />   对象的成员方法的引用方式如下åQ?br /> <br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">对象å?成员æ–ÒŽ(gu¨©)³•å?参数è¡?;</span></div> <br /> <strong>9 对象的初始化与构造方æ³?/strong><br /> <br />   构造方法是一个类的方法中æ–ÒŽ(gu¨©)³•名与¾cÕdç›¸åŒçš„ç±»æ–ÒŽ(gu¨©)³•ã€?br />   每当使用 new 关键字创å»ÞZ¸€ä¸ªå¯¹è±¡ï¼Œä¸ºæ–°å»ºå¯¹è±¡å¼€è¾Ÿäº†å†…å­˜½Iºé—´ä¹‹åŽåQŒJava ¾pȝ»Ÿž®†è‡ªåŠ¨è°ƒç”¨æž„é€ æ–¹æ³•åˆå§‹åŒ–˜q™ä¸ªæ–°å¾å¯¹è±¡ã€?br /> <br />   构造方法是¾cȝš„一¿Uç‰¹ŒDŠæ–¹æ³•,它的ç‰ÒŽ(gu¨©)®Šæ€§ä¸»è¦ä½“现在以下几个斚w¢åQ?br /> <br />     构造方法的æ–ÒŽ(gu¨©)³•名与¾cÕdç›¸åŒã€?br />     构造方法是¾cÈš„æ–ÒŽ(gu¨©)³•åQŒå®ƒèƒ½å¤Ÿ½Ž€åŒ–对象数据成员的初始化操作ã€?br />     不能å¯ÒŽ(gu¨©)ž„造方法指定类型,它有隐含的返回å€û|¼Œè¯¥å€¼ç”±¾pȝ»Ÿå†…部使用ã€?br />     构造方法一般不能由¾~–程人员昑ּåœ°ç›´æŽ¥è°ƒç”¨ï¼Œåœ¨åˆ›å»ÞZ¸€ä¸ªç±»çš„对象的同时åQŒç³»¾lŸä¼šè‡ªåŠ¨è°ƒç”¨è¯¥ç±»çš„æž„é€ æ–¹æ³•å°†æ–°å¯¹è±¡åˆå§‹åŒ–ã€?br />     构造方法可以重载,卛_¯å®šä¹‰å¤šä¸ªå…ähœ‰ä¸åŒå‚数的构造方法ã€?br />     构造方法可以ç‘ô承,卛_­¾cÕd¯ä»¥ç‘ô承父¾cÈš„æž„造方法ã€?br />     如果用户在一个自定义¾cÖM¸­æœªå®šä¹‰è¯¥¾cÈš„æž„造方法,¾pȝ»Ÿž®†äØ“˜q™ä¸ª¾cÕd®šä¹‰ä¸€ä¸ªç¼ºçœçš„½Iºæž„造方法。这个空构造方法没有åŞ式参敎ͼŒä¹Ÿæ²¡æœ‰å…·ä½“语句,不能完成ä»ÖM½•操作。但在创å»ÞZ¸€ä¸ªç±»çš„æ–°å¯¹è±¡æ—Óž¼Œ¾pȝ»Ÿè¦è°ƒç”¨è¯¥¾cÈš„æž„造方法将新对象初始化ã€?br /> <br />   ç‰ÒŽ(gu¨©)®Šæƒ…况下,构造方法中的参数名可能与数据成员名相同åQŒæ­¤æ—Óž¼Œåœ¨æž„造方法中可用下面两种形式之一来区分数据成员名与参数名åQ?br /> <br />     默认法。当构造方法的参数名与数据成员名相同时åQŒå°†èµ‹å€¼å·å·¦è¾¹çš„æ ‡è¯†ç¬¦é»˜è®¤ä¸ºå¯¹è±¡çš„æ•°æ®æˆå‘˜åï¼Œè€Œèµ‹å€¼å·åŒ™¾¹çš„æ ‡è¯†ç¬¦ä¸ºå‚æ•°ã€?br />     使用代表本类对象的关键字 this 指出数据成员名之所在ã€?br /> <br /> </div> <img src ="http://www.aygfsteel.com/shisanfeng/aggbug/191023.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/shisanfeng/" target="_blank">龙震</a> 2008-04-06 13:10 <a href="http://www.aygfsteel.com/shisanfeng/articles/191023.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷Õ¾Ö©Öë³ØÄ£°å£º <a href="http://" target="_blank">¡»ØÏØ</a>| <a href="http://" target="_blank">ÓÀ³ÇÊÐ</a>| <a href="http://" target="_blank">ƽÄÏÏØ</a>| <a href="http://" target="_blank">°×Ë®ÏØ</a>| <a href="http://" target="_blank">¿ËÀ­ÂêÒÀÊÐ</a>| <a href="http://" target="_blank">ÐÂÏçÏØ</a>| <a href="http://" target="_blank">¿µÆ½ÏØ</a>| <a href="http://" target="_blank">ÈðÀöÊÐ</a>| <a href="http://" target="_blank">ºÏÑôÏØ</a>| <a href="http://" target="_blank">²ýÒØÊÐ</a>| <a href="http://" target="_blank">ÀÖ²ýÊÐ</a>| <a href="http://" target="_blank">ͨº£ÏØ</a>| <a href="http://" target="_blank">Ñô³ÇÏØ</a>| <a href="http://" target="_blank">¶¨°²ÏØ</a>| <a href="http://" target="_blank">¡×ÓÏØ</a>| <a href="http://" target="_blank">ԭƽÊÐ</a>| <a href="http://" target="_blank">ÒÁ½ð»ôÂåÆì</a>| <a href="http://" target="_blank">ÄϰÄÏØ</a>| <a href="http://" target="_blank">·±²ýÏØ</a>| <a href="http://" target="_blank">ÌÆÉ½ÊÐ</a>| <a href="http://" target="_blank">½ð»ªÊÐ</a>| <a href="http://" target="_blank">»ëÔ´ÏØ</a>| <a href="http://" target="_blank">ɳÌïÇø</a>| <a href="http://" target="_blank">×ÊÖÐÏØ</a>| <a href="http://" target="_blank">³½ÏªÏØ</a>| <a href="http://" target="_blank">ÄÏÁêÏØ</a>| <a href="http://" target="_blank">ÐÂÖñÊÐ</a>| <a href="http://" target="_blank">µÂ¸ñÏØ</a>| <a href="http://" target="_blank">·îÏÍÇø</a>| <a href="http://" target="_blank">ξÀçÏØ</a>| <a href="http://" target="_blank">ÆÖÏØ</a>| <a href="http://" target="_blank">ÍôÇåÏØ</a>| <a href="http://" target="_blank">ÁúÖÝÏØ</a>| <a href="http://" target="_blank">ºç¿ÚÇø</a>| <a href="http://" target="_blank">µÂ²ýÏØ</a>| <a href="http://" target="_blank">̨±±ÊÐ</a>| <a href="http://" target="_blank">ºÓÇúÏØ</a>| <a href="http://" target="_blank">ËïÎâÏØ</a>| <a href="http://" target="_blank">ƽ½­ÏØ</a>| <a href="http://" target="_blank">·áË³ÏØ</a>| <a href="http://" target="_blank">´óÒ¦ÏØ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>