仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 666|回复: 9
打印 上一主题 下一主题

[学习教程] 来看冒号和他的先生们(连载24)――对象封装

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。
24.对象封装
阴阳地舆两分张,隐者为阴显者阳              ——《玉髓经.曜星论》
“用广东话说,真是有型有料又有性情啊!”叹号啧啧连声,“这那里是在计划软件,明白是在计划心仪的对象嘛。”
“我们可不就是在谈对象计划吗?”冒号笑着反问,“在OOP的天下里,每位程序员都是造物主。坚持热忱、专注力和审美情味,说不定哪一天就像希腊神话里的皮格玛利翁一样,雕塑的玉人变活了。”
“哇,那可就美了!”逗号极尽夸大之调。
全班捧腹大笑。
“方才提到笼统是OOP三年夜基础特征的基本,上面我们逐一分析。”冒号很快收拢了话题,“首当其冲的是封装性。记得后面谈对象范式时,引号曾试图为我们注释封装性,惋惜被我无情地打断了。如今我们请他持续解说吧。”
在世人逗趣式的掌声中,引号竟有些大方了:“所谓封装性,就是将数据与相干举动包装在一同以完成信息埋没。”
“几近自作掩饰。”冒号歌颂得有些守旧,“那末封装(encapsulation)与信息埋没(informationhiding)有区分吗?”
“应当是一回事吧。”在冒号的逼视下,引号有些夷由了,“嗯。。。信息埋没是一种准绳,而封装是完成这类准绳的一种体例。”
“言之有理!”冒号这回歌颂得很爽性,“只管年夜多半参考书对两者不加辨别,我仍是要剖析一番。实在狭义的封装仅仅只是一种打包,即package或bundle,是密封的但能够是通明的。大概说,封装就是把一些数据和办法装在一个关闭的盒子里——多是黑盒子,也多是白盒子。从语法上说,这是OOP与诸如C之类的历程式言语最年夜的分歧。叨教这带来甚么效果?”
句号反响很快:“这即是引进了一种新的模块机制,将相干的数据和感化其上的运算绑缚在一同构成被称为类的模块。”
“回覆准确!”冒号很中意,“方才我们用C完成了行列,但因为C不撑持封装,只能以文件情势来分别模块,明显不如类分别那末便利和了了。别的,封装另有语法糖(Syntacticsugar)效果。”
问号猎奇地问:“甚么是语法糖?是否是很甜?”
“所谓语法糖,就是一些语法上的长处。它不是中心语法,并没有供应任何分外的功效,只是用起来更简便有用、更天然便利,看起来更酷、更炫罢了。”冒号成心用时兴的辞汇来弥补代沟,“我们晓得,历程式函数接纳谓语(主语,宾语)的情势,而OOP接纳主语.谓语(宾语)的情势。”
“哦,就是谁人狗吃屎和吃狗屎啊,那可不甜。”逗号又来插科讥笑。
世人笑得前仰后合。
冒号不为所动:“再拿行列为例,假如增添一个行列成员,用方才的C完成,我们必要写下:queue_add(queue,item)。假设用Java来完成,只需写queue.add(item)。因为封装使add绑定在queue上,一方面能够将对象queue前置,既更切合天然言语,又少敲一个字符;另外一方面,这类绑定使add范围于Queue类中,因而不用加上‘queue_’的前缀以防与其他类的办法函数名相抵触。这一样节俭了打字,也使接口更复杂。”
句号提出:“假如C撑持函数重载(overload),那末‘queue_’的前缀便可省往。”
“你说的既对也不合错误。”冒号辩证地评判,“假如C撑持重载,该前缀切实其实能省往;但从另外一角度看,即便Java或C++不撑持重载,前缀用样能省往。由于函数add已不再是全局函数,Queue类就是其高低文(context)。换句话说,分属分歧类的函数是不成能发生歧义(ambiguity)的,哪怕它们的署名(signature)千篇一律。因而我们要把功烈记在封装的名下。”
句号心服口服。
<p>
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-20 15:19:42 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
莫相离 该用户已被删除
板凳
发表于 2015-1-20 20:22:12 | 只看该作者
是一种为 Internet发展的计算机语言
深爱那片海 该用户已被删除
地板
发表于 2015-1-29 20:44:45 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
乐观 该用户已被删除
5#
发表于 2015-2-3 12:44:17 | 只看该作者
是一种突破用户端机器环境和CPU
小魔女 该用户已被删除
6#
 楼主| 发表于 2015-2-9 00:51:52 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
谁可相欹 该用户已被删除
7#
发表于 2015-2-26 16:04:39 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
8#
发表于 2015-3-8 15:59:02 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-16 03:56:03 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
山那边是海 该用户已被删除
10#
发表于 2015-3-22 19:49:12 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 22:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表