- 2
- 0
- 约6.31千字
- 约 8页
- 2017-06-22 发布于湖北
- 举报
对象导论
抽象过程
Alan Kay 总结出OOP五大特性:
万物接对象:
它能存储数据,可在自身上执行操作。理论上,可以抽取待求解问题的任何概念化构建(实体、服务等),将其表示为程序中的对象。
程序是对象的集合,它们通过发送消息来告知彼此所要做的:
要请求一个对象,就必须对该对象发送一条消息。其实消息就是对某个特定对象的方法的调用请求。(消息——对象方法的调用。)
每个对象都有自己的有其他对象所构成的存储:
对象可以用来构成其它对象的一部分,程序中可以构建复杂体系,同时将其复杂性隐藏在对象的简单性背后。
每个对象都拥有类:
每个对象都是某个类的实体。
某一特定类型的所有对象都可以接受同样的消息。这种可替代性(substitutability)是OOP中最强有力的概念之一。
每个对象都有一个接口
面向对象程序设计的挑战之一,就是在问题空间的元素和解空间的对象之间创建一对一的映射。
接口(对象方法的抽象)确定了对某一特定对象所能发出的请求。但是,在程序中必须有满足这些请求的代码,这些代码与隐藏的数据一起构成了实现(对象方法的调用)。
每个对象都提供服务
当正在试图开发或理解一个程序设计时,最好的方法之一就是将对象想象为“服务提供者(service provider)”。
程序本身将向用户提供服务,他将通过调用其他对象提供的服务来实现这一目的。
你的目标就是去创建(或者在现有库中寻找类来创建)能够提供理想的服务来解决问题的一系列对象。
将对象看作是服务提供者还有一个附加好处:它有助于提高对象的内聚性。高内聚性可以提高对象的复用性。
被抽象的具体实现
将程序开发人员按角色分为类创建者(构建类)和客户端程序员(用类和对象创建程序)。
访问控制的作用:
让客户端程序员无法触及他们不应触及的部分;
优点:减少BUG,并且让客户端程序员更专心
2)库设计者可以改变类内部结构而不用担心会影响到客户端程序员。
访问控制的方式:
public、private、protected
Java的默认访问权限——包访问权限:当没用到任何访问指定词时,它将发挥作用。在这种权限下,类可以访问在同一个包(库构建)中的其他成员,但是在包外,则不能访问。
复用具体实现
?Association(关联): Uses the services of another class Aggregation ( 聚合 ):A class “owns” another class Composition(组合):A class is composed of another class; refers to an aggregation within which the component parts and the larger encompassing whole share a lifetime
聚合(aggregation):使用现有类(的对象)合成新类。生存周期互不影响。
组合(composition):也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。 你和你的心脏之间是composition关系() 你和你买的书之间是aggregation关系() 你和你的朋友之间是association关系contains-a B
class A 中 应该包含 class B 的对象本身,要创建calss A 的对象,就肯定创建了 class B的对象,A的对象从内存中撤销,则B的对象也跟着消失。
在程序设计时,应先考虑组合,后考虑继承。继承会使得程序变得复杂,而组合可以使程序更安全,复用性更高(通过将内容类的成员设置为私有)。
继承
左图中父类在上,子类在下。它们之间的继承关系用空心三角箭头来表示。
下面的图代表一个例子:
is-a(是一个) 和 is-like-a(像是一个):
1) is-a :当继承为纯粹替代(替代原则)时,父类和子类之间的关系式is-a。
这种替代,子类只覆盖基类的方法,而不创建新的方法。它们具有完全相同的接口。
2) is-like-a :继承时会在子类中添加父类中没有的新方法。
伴随多态的可互换对象
多态的好处:用基类对象来表示子类对象,对所有不同子类对象可以进行统一处理。
在处理类型的层次结构时,经常想把一个
您可能关注的文档
- 先锋音讯四、八、十六路盒说明书要领.doc
- 薪酬方案-试行-2(格式版) Word 文档指南.doc
- 相关子查询优化详解.pdf
- 第六章 电子黑板教学系统设备说明书.pdf
- 第2讲 AMESim工作空间.pdf
- 远程教育系统方案(20页)课件.doc
- 多媒体计算机技术-7_附件.ppt
- 第四章 AE-T1全电加热洗碗机规格说明书.pdf
- 项目4单面混装生产器件摘要.doc
- 映射及函数概念,函数解析式表示法.doc
- 2025年版汽车趋势报告 The 2025 EPA Automotive Trends Report.docx
- 2026年边缘计算开源平台EdgeX Foundry入门与二次开发.docx
- 2026年超声内镜放大内镜早癌诊断AI辅助识别系统临床评价.docx
- 2026年报废汽车回收与再制造逆向物流体系.docx
- 2026年产品碳足迹核算方法学:从摇篮到大门与从摇篮到坟墓.docx
- 2026年城乡要素平等交换双向流动政策创新试点申报材料.docx
- 2026年超导半导体接口电路架构与电平转换驱动器设计.docx
- 2026年财政贴息不再以再贷款支持为前提后的风险防范与合规要点.docx
- 2026年不动产信托登记试点政策对遗嘱信托支持.docx
- 2026年城乡有机废弃物协同处理技术方案.docx
原创力文档

文档评论(0)