C#与面向对象编程语言.pdf

C#与面向对象编程语言.pdf

ID:51491991

大小:459.09 KB

页数:22页

时间:2020-03-25

C#与面向对象编程语言.pdf_第1页
C#与面向对象编程语言.pdf_第2页
C#与面向对象编程语言.pdf_第3页
C#与面向对象编程语言.pdf_第4页
C#与面向对象编程语言.pdf_第5页
资源描述:

《C#与面向对象编程语言.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第2章C#与面向对象编程语言阅读目标树立面向对象设计思想理解封装、继承、抽象、多态的概念学会如何识别系统中的对象2.1面向对象思想面向对象思想为软件设计与开发赋予了哲学的意义。在哲学的世界里,小至沙粒微尘,大至日月星辰乃至宇宙,均可视为单独的个体对象而存在。如果以哲学的目光凝视程序的世界,又何尝不是如此?一个用户,一种销售策略,一条消息,一张订单,一个Web网页……,运用面向对象思想,则它们都可以视为一种对象。每一种对象,都有独立的生命周期。谁来创建它,谁来销毁它,它的内在属性,表现行为,以及它与外界之间的关系和集合,无不具有某种哲学

2、的意味。我们在定义对象时,就好比是在描述一个现实世界的事物,需要第2章C#与面向对象编程语言定义该对象的自然属性和社会属性,限定它的内涵与外延,勾勒出该对象的社会关系。面向对象思想的精要,在于“一切皆为对象”的本质。那么,什么是对象呢?一般认为,对象是一个真实的或抽象的元素,它包含了描述信息的属性以及处理对象信息的行为。行为在对象的定义时,又表现为方法。以现实世界为例,“人”作为一种特殊的动物,可以看作是一种对象。这个对象具有许多属性,例如姓名、身高、体重、民族、国籍、出生年月等等,而行为则包括行走、吃饭、跑步、乃至于玩游戏、踢足球。从词义

3、学的角度来看,属性偏向于名词的范畴,行为则具有动词的词性。虽然说对象是由属性和行为组成,但并不代表它们必须被对象同时拥有,仅仅拥有属性或者行为的对象在系统设计中比比皆是。之所以如此定义,或者是由对象的自身特质所决定,也可能根据设计的要求而定。例如,商品信息对象就只包含了商品名、商品类别、价格、库存量等属性,如果不考虑数据操作,对象自身是不具有任何行为的。在软件体系架构设计中,领域层的实体对象往往就是类似于商品信息对象这样仅具有属性的对象。而当我们在分辨鸟类动物时,有时候却需要将鸟类飞行的能力视为一种对象。此时,该对象仅具有飞行这样一种行为。

4、或许它与我们有关对象的理解大相径庭,然而基于“一切皆为对象”的本质,为什么我们不能对其一视同仁呢?对象的属性与行为并非一成不变,根据实际情况,同一种对象具有的属性和行为可能会发生变化。例如同样是对象“人”,在户籍管理系统中,我们就不必关心有关行走、吃饭、跑步等行为;但如果是开发一个足球游戏,那么作为对象的“人”,就需要定义各种踢足球的行为。同样,在户籍管理系统中,不必考虑对象“人”的身高、体重、容貌等属性,但如果是征婚信息管理系统中,这些属性恰恰是系统最为关注的焦点。在进行面向对象设计时,开发者就是造物主,是抟土造人的女娲,对象的一切要素均

5、掌握在开发者手中。然而,一个好的开发者却不能随心所欲的“创造”对象,他们应该是系统需求的忠实执行者,对象的属性与行为,特别是对象的细粒度都必须由系统需求决定。以“汽车”对象为例,对于车辆管理系统而言,汽车被看作是一个整体,我们不需要对汽车的零部件进行细化。如果是汽车的生产控制系统,“汽车”对象则是一整套零部件的集合。我们在定义对象时,必须细化到引擎、轮胎乃至于更小的一级。对象的定义必须符合系统的需求,这是面向对象设计中最基本的原则。面向对象思想还包括三个核心要素,即封装(Encapsulation)、继承(Inheritance)与多态(P

6、olymorphism),21C#编程极限它将面向对象技术推到了思想的境界。只有真正理解了这三个要素,才算得上掌握了面向对象思想的精髓。所谓对象的“封装”,就是将对象的相关数据隐藏到接口方法中。之所以要采用封装,是因为对象会引人而异,暴露出不同的数据信息。反过来说,对象的封装则有利于相关信息的隐藏,它适当地保护了对象的“隐私”。正如一间房屋一般,室内的装饰与摆设只能被室内的居住者欣赏与使用,如果没有四面墙的遮挡,室内的所有活动在外人面前一览无遗,结果就太糟糕了。然而,封装是有限度的,一个包裹得严严实实的黑箱子,即使它的空间再宽阔,也没有实用

7、价值。正如房屋的门与窗,就是封装对象暴露在外的接口方法,专门供人出入与流通空气、为房间带来一缕阳光。“封装”的意义在于除了设计者之外,对象不能将任何实现细节暴露在外。以电子商务系统为例,系统的设计者必须根据业务逻辑实现提交订单的所有细节,但这些细节对于客户而言,却是没有必要的。客户并不关心提交订单的处理流程,他只需要知道如何提交订单,以及订单是否提交正确。对象的封装使得信息不至于造成冗余,减小了客户需要关注的信息量。“继承”是一个漂亮的隐喻,它将法律中的术语生动地引入到面向对象思想中,就像继承遗产一般,有效地保证了被继承者的所有特性在继承者

8、中得以复用与延续。对象的继承,代表了资源的重利用,通过继承可以省去许多重复的实现,减少了开发的代码量。例如“人”对象与“雇员”对象,“雇员”对象就完全具备对象“人”的所有属性和行

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。