请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
Contents
什么是面向对象设计...................................................................................................................................2
面向对象系统的特点...................................................................................................................................2
封装性.......................................................................................................................................................2
继承性.......................................................................................................................................................2
多态性.......................................................................................................................................................3
面向对象的语言四大特点...........................................................................................................................3
1.抽象........................................................................................................................................................3
2.继承........................................................................................................................................................3
3.封装........................................................................................................................................................4
4.多态性....................................................................................................................................................4
面向对象的优势...........................................................................................................................................4
活动图与流程图的区别...............................................................................................................................4
uml 建模中顺序图、协作图、活动图各关注的重点是什么?..................................................................5
面向对象的基本概念...................................................................................................................................5
(1)对象.......................................................................................................................................................5
(3)类...........................................................................................................................................................5
(4)类的结构...............................................................................................................................................6
(5)消息和方法...........................................................................................................................................6
面向对象的特征.......................................................................................................................................6
三.面向对象的要素..................................................................................................................................7
什么是聚合/组合:..................................................................................................................................... 8
聚合(Aggregation).....................................................................................................................................8
组合(Composite)..................................................................................................................................8
聚合与合成原则:...................................................................................................................................9
几种图的相关的定义...................................................................................................................................9
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
1
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
什么是面向对象设计
面向对象设计是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过
程。从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。 面向对象设计是模仿现实
生活处理问题的思维和方式来解决软件开发问题,首先根据需要解决的问题和功能进行抽象把他
看作是一个具体的事物同时给他添加相应的属性和行为服务,这样就可以像日常生活里遇到问题
一样按照自己的思维方式来解决并把这些思维方式直接映射到代码里。
面向对象系统的特点
封装 性
封装是指将一组数据和与这组数据有关的操作放在一起,形成一个能动的实体——对象。封装
是一种通过定义严格的外部接口在单独编写的模块之间减少相互依赖的技术。
一个对象要具有封装性,应具备如下几个条件:
1. 具有一个清楚的边界。
2. 具有一个接口。
3. 对象内部的属性和实现代码受到封装壳的保护。
面向对象系统的封装性是一种信息隐藏技术,它使系统设计员能够清楚地表明他们所提供的服
务界面,用户和应用程序员则只能看见对象所提供的服务,而看不到其中的数据和操作代码细
节。
对象的封装机制的目的在于将对象的使用者和设计者分开。
除了对象的封装以外,类概念本身也具有一种封装意义,它将数据和与这个数据有关的操作集
合封装在一起。
继承 性
继承是一个对象可以获得另一个对象的特性的机制,它支持层次分类的概念。
将被继承的对象称为基类或父类,而继承的对象称为派生类或子类。
如果父类中的某些行为不适用于子类,则只需对这些操作的实现部分加以修改和重写,以满足
子类的要求。
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
2
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
父类可以继承其它的类,子类也可以被别的类所继承,从而形成类的继承层次关系,也称为类
层次。
若一个类只有一个父类,则称为单继承,这样建立起来的类类层次形成了一个树。当一个类有
多于一个基类时,则称为多重继承。
采用继承性的语言具有如下的优点:
1. 提高了软件的重用性。
2. 符合逐步求精的软件工程原则。
3. 便于实现多态性。
4. 便于系统的扩展。
5. 类层次反映了现实世界中普遍存在的一般与特殊的关系,也反映了人类认识世界的演绎方
法。
多态 性
多态性隐含表明对象可以属于多于一个的分类,因此分类可以重叠和相交。
多态性强有力之处为它支持更灵活的计算模型。在面向对象程序语言中,主要的选择是重载和
参数化多态性。
重载:相同的名字可以在不同的语境中被重载来为不同的特性(例如属性或操作)署名。
参数化多态性:这种多态性形式在面向对象的模型中常以类属的形式出现。
面向对象的语言四大特点
1. 抽象
抽象就是忽略一个主题中与当前目标无关的那些方面,以便充分地注意与当前目标相关的方
面。抽象并不打算了解全部内容,而只是选择其中一部分内容,及主要内容,抽象分为:过程抽
象和数据抽象
2. 继承
继承是一种层次模型,可以实现累的重用,他提供了一种明确表达共性的方法。一个新类可以
从现有的类中继承,这个过程称之为类继承。新类继承了原始类的特性,新类称之为子类,原始
类称之为父类。子类可以从他的父类中继承方法和实例变量,并且子类可以覆盖父类中的方法或
添加新的方法。
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
3
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
3. 封装
封装是把数据和过程给包围起来,对数据的访问只能通过给定的界面。面向对象计算始于这个基
本概念,即现实世界是一个完全自制,封装的对象,这些对象通过一个受保护的接口访问其他对
象。
4. 多态 性
多态性是指不同的类对象对同一个消息做出响应。多态性包括参数多态和包含多态。多态性语言
具有灵活,抽象,行为共享,代码共享的优势,可以解决应用程序的函数重名问题。
面向对象的优势
面向对象技术在各个层面对软件的开发产生着积极的影响,其优势主要体现在以下三个方面。
第一,减少沟通障碍。一般情况下,软件开发总要涉及到各类参与者,常见的诸如用户,分析
师,系统架构师,设计师和编码人员等等。基于面向对象技术,求解空间中的要素直接而紧密地
反映问题空间中的要素,参与问题求解的人员可以基于这条核心线索理解其它人员的工作,从而
打破大量沟通壁垒。
第二,提高开发生产率。面向对象技术用于提高开发生产率的途径是“复用”。它不仅在理论
层面给出“复用”的方法,而且在程序设计语言和工具层面为“复用”提供了有力的支撑。
第三,增强对变化的适应能力。缘于各种起因的软件需求变化是客观的现实,通常也是软件优
化的动力。然而,如果问题中很小的变化在解决方案中“一石激起千层浪”,变化的积极因素就
很可能导致得不偿失的影响。这一点上,面向对象的方法具有明显的优势。鉴于求解空间和问题
空间的相似性,来自于问题空间的一个局部变化在求解空间的影响也将是局部的,而不会殃及整
体结构。
我们在生活中接触最多的“面向对象编程技术”仅仅是面向对象技术中的一个组成部分。发挥
面向对象技术的优势是一个综合的技术问题,不仅需要面向对象的分析,设计和编程技术,而且
需要借助必要的建模和开发工具。
活动图与流程图的区别
活动图是 UML 用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活
动到另一个活动的控制流。活动图在本质上是一种流程图。
(1)、流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严
格的顺序和时间关系。而活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系
统的行为,而非系统的处理过程。
(2)、活动图能够表示并发活动的情形,而流程图不行。
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
4
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
(3)、活动图是面向对象的,而流程图是面向过程的。
uml 建模中顺序图、协作图、活动图各关注的重点是什么?
顺序图和协作图都属于交互图,这两种图之间的区别在于:顺序图基于时间,按时间顺序显示出
现的任务;而协作图显示任务和信息(对象)的交互方式。在协作图中,时间以编码形式显示,很
难选取。虽然存在这些根本区别,但这两类图有相同之处:都用于显示对象和用户如何交互以执
行任务
活动图只是描述工作流以及谁完成工作的方式,与流行的数据流程图类似。实际上,可将活动图
视为数据流程图。
顺序图协作图兴盛于 booch 方法论,属于系统设计阶段的内容,表现得角度不同,分别适用于时
间顺序强的业务系统和状态变迁为主的嵌入式系统地使用。
活动图就是流程图的一种表现形式,一般用于描述业务(需求阶段)或者类(设计阶段)的内部
细节描述。
顺序图偏重于交互的时间次序
协作图展示对象的交互关系
活动图表现数据业务流程
面向对象的基本概念
(1) 对象.
对象是人们要进行研究的任何事物.从最简单的整数到复杂的飞机等均可看作对象.它不仅能表示具
体的事物.还能表示抽象的规则.计划或事件.
(2)对象的状态和行为.
对象具有状态.一个对象用数据值来描述它的状态.
对象还有操作.用于改变对象的状态.对象及其操作就是对象的行为.
对象实现了数据和操作的结合.使数据和操作封装于对象的统一体中
(3) 类.
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
5
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
具有相同或相似性质的对象的抽象就是类.因此.对象的抽象是类.类的具体化就是对象.也可以说类
的实例是对象.
类具有属性.它是对象的状态的抽象.用数据结构来描述类的属性.
类具有操作.它是对象的行为的抽象.用操作名和实现该操作的方法来描述.
(4) 类的 结构.
在客观世界中有若干类.这些类之间有一定的结构关系.通常有两种主要的结构关系.即一般--具体结
构关系.整体--部分结构关系.
①一般--具体结构称为分类结构.也可以说是[或"关系.或者是[is a"关系.
②整体--部分结构称为组装结构.它们之间的关系是一种[与"关系.或者是[has a"关系.
(5) 消息 和 方 法.
对象之间进行通信的结构叫做消息.在对象的操作中.当一个消息发送给某个对象时.消息包含接收
对象去执行某种操作的信息.发送一条消息至少要包括说明接受消息的对象名.发送给该对象的消息
名(即对象名.方法名).一般还要对参数加以说明.参数可以是认识该消息的对象所知道的变量名.或
者是所有对象都知道的全局变量名.
类中操作的实现过程叫做方法.一个方法有方法名.参数.方法体
面向 对象 的特征
(1)对象唯一性.
每个对象都有自身唯一的标识.通过这种标识.可找到相应的对象.在对象的整个生命期中.它的标识
都不改变.不同的对象不能有相同的标识.
(2)分类性.
分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类.一个类就是这样一种抽象.
它反映了与应用有关的重要性质.而忽略其他一些无关内容.任何类的划分都是主观的.但必须与具
体的应用有关.
(3)继承性.
继承性是子类自动共享父类数据结构和方法的机制.这是类之间的一种关系.在定义和实现一个类的
时候.可以在一个已经存在的类的基础之上来进行.把这个已经存在的类所定义的内容作为自己的内
容.并加入若干新的内容.
继承性是面向对象程序设计语言不同于其它语言的最重要的特点.是其他语言所没有的.
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
6
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
在类层次中.子类只继承一个父类的数据结构和方法.则称为单重继承.
在类层次中.子类继承了多个父类的数据结构和方法.则称为多重继承.
在软件开发中.类的继承性使所建立的软件具有开放性.可扩充性.这是信息组织与分类的行之有效
的方法.它简化了对象.类的创建工作量.增加了代码的可重性.
采用继承性.提供了类的规范的等级结构.通过类的继承关系.使公共的特性能够共享.提高了软件的
重用性.
(4)多态性(多形性)
多态性使指相同的操作或函数.过程可作用于多种类型的对象上并获得不同的结果.不同的对象.收
到同一消息可以产生不同的结果.这种现象称为多态性.
多态性允许每个对象以适合自身的方式去响应共同的消息.
多态性增强了软件的灵活性和重用性.
三. 面向 对象 的要素
(1)抽象.
抽象是指强调实体的本质.内在的属性.在系统开发中.抽象指的是在决定如何实现对象之前的对象
的意义和行为.使用抽象可以尽可能避免过早考虑一些细节.
类实现了对象的数据(即状态)和行为的抽象.
(2)封装性(信息隐藏).
封装性是保证软件部件具有优良的模块性的基础.
面向对象的类是封装良好的模块.类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部
实现)显式地分开.其内部实现按其具体定义的作用域提供保护.
对象是封装的最基本单位.封装防止了程序相互依赖性而带来的变动影响.面向对象的封装比传统语
言的封装更为清晰.更为有力.
(3)共享性
面向对象技术在不同级别上促进了共享
同一类中的共享.同一类中的对象有着相同数据结构.这些对象之间是结构.行为特征的共享关系.
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
7
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
在同一应用中共享.在同一应用的类层次结构中.存在继承关系的各相似子类中.存在数据结构和行
为的继承.使各相似子类共享共同的结构和行为.使用继承来实现代码的共享.这也是面向对象的主
要优点之一.
在不同应用中共享.面向对象不仅允许在同一应用中共享信息.而且为未来目标的可重用设计准备了
条件.通过类库这种机制和结构来实现不同应用中的信息共享.
什么是聚合/组合:
聚合(Aggregation)
当对象 A 被加入到对象 B 中,成为对象 B 的组成部分时,对象 B 和对象 A 之间为聚合关系。聚合
是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。
场景:商品和他的规格、样式就是聚合关系。
类与类的聚合关系图
组合 (Composite )
对象 A 包含对象 B,对象 B 离开对象 A 没有实际意义。是一种更强的关联关系。人包含手,手离
开人的躯体就失去了它应有的作用。请大家帮忙把这句话设为 QQ 签名,“淘热门
http://www.taoremen.com , 精选淘宝热门商品”
场景: Window 窗体由滑动条 slider、头部 Header 和工作区 Panel 组合而成。
类与类的组合关系图
请大家帮忙把这句话设为 QQ 签名,“淘热门 http://www.taoremen.com , 精选淘宝热门商品”
8