当前位置:文档之家› 面向对象方法

面向对象方法

面向对象方法
1、对象:是系统中用来描述客观事务的一个实体,是构成系统的一个基本单位。

三个要素:对象标志(供系统内部唯一的识别对象);属性(状态、数据、用来描述对象的静态特征);服务(操作、行为或方法,用来描述对象的动态特征)
2、面向对象=对象(objects)+类(classes)+继承(inheritance)+消息通信(communication with messages)
3、封装是对象的一个重要原则。

有2 个含义:对象是全部属性和全部服务紧结合而形成的一个不可分隔的整体;对象是一个不透明的黑盒子,表示对象状态的数据和实现操作的代码都被封装在黑盒子里面。

4、类和类库:类是对象的抽象定义,是一组具有相同数据结构和相同操作的对象的集合。

类与对象是抽象描述与具体实例的关系,一个具体的对象被称为类的一个实例(instance)。

5、继承:使用已存在的定义作为基础建立新定义的技术。

父类、子类要了解。

6、多态性:可以分为四类:过载多态(重载多态),强制多态,包含多态,参数多态。

前两种统称为专用多态(特定多态),后两种称为通用多态。

7、消息:指向对象发出的服务请求,它应该含有下述
信息:提供服务的对象标志、消息名、输入信息和回答信息
8、消息通信:封装使对象成为一些各司其职、互不干扰的独立单位;消息通信为他们提供了唯一的合法的动态联系途径,使他们的行为能够相互配合,构成一个有机的系统。

只有同时使用对象、类、继承与消息通信,才是真正面向对象的方法。

9、统一建模语言UML---是一种语言;是一种可视化语言;是一种可用于详细描述的语言;是一种构造语言;是一种文档化语言
10、UML 结构:构造块(建模元素、关系、图);公共机制(规格说明、修饰、公共分类、扩展机制);构架(逻辑视图、进程视图、实现视图(构建)、布署视图、用例视图)裸狗不用进
11、UML 视图:系统静态结构的静态模型(包括类图、构件图、部署图),系统动态结构的动态模型(包括对象图、用例图、序列图、协作图、状态图、活动图)
12、用例图:用例模型描述的是外部执行者(Actor)所理解的系统功能,用于需求分析阶段。

(十四个图能认出来)
参与者(Actor)代表与系统接口的任何事物或人,它是指代表某一种特定功能的角色,参与者都是虚拟的概念。

用例:(use case)是对系统行为的动态描述,可以促进设计人员、开发人员与用户的沟通,理解正确的需求,还可以划分系统与外部实体的界限。

13、类-----是一组具有相同属性,表现相同行为的对象的抽象。

类的命名(最顶部的格子包含类的名字)
类的属性(中间的格子包含类的属性,用以描述该类对象的共同特点。

可见性包括Public、Private、Protected 分别用+-#号表示。

类型表示该属性的种类,约束特性是用户对该属性的一个约束的说明)
类的操作—可以省略。

操作用于修改、检索类或执行某些动作。

14、类之间的关系:能判断
(1)依赖关系
(2)泛化关系
(3)关联关系---聚合关系、组合关系。

(4)实现关系
15、类图:描述类与类之间的静态关系。

与数据模型不同,不仅现实了信息的结构,还描述了系统的行为。

是面向对象建模中最重要的模型。

16、对象图:可以看做是类图的一个实例。

对象图常用于表示复杂的类图的一个实例。

17、交互图:表示各组对象如何依某种行为进行协作的模型。

通常可以使用一个交互图来表示和说明一个用例的行为。

分为强调对象交互行为顺序的顺序图,强调对象协作的协作图。

顺序图:用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。

协作图:用于描述相互合作的对象间的交互关系和链接关系。

顺序图着重体现交互的时间顺序,协作图则着重体系交互对象间的静态链接关系。

18、状态图:用来描述对象状态和事件之间的关系。

通常用状态图来描述单个对象的行为。

它包含:状态、初始状态、结束状态、状态转移 4 个部分。

适用于表述在不同用例之间的对象行为,但并不合适于表示包含若干协作的对象行为。

19、活动图:表示系统中各种活动的次序,可以用来描述用例的工作流程,也可以用来描述类中某个方法的操作行为。

20、构件图:可以有效的显示一组构件,以及它们之间的关系。

构件图通常包括构件、接口,以及各种关系。

21、部署图(实施图):构件图是说明构件之间的逻辑关系,而部署图描述系统硬件的物理拓扑结构,以及在此
结构上执行的软件。

包括:1、节点和连接;2、构件和接口
22、面向对象分析(ooa)面向对象编程(oop)面向对象设计(ood)
OMT(Object Modeling Technique)方法:
泛化(generalization)关系是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性。

实现(realization)关系指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性;
依赖(dependency)关系: 也是类与类之间的连接. 表示一个类依赖于另一个类的定义. 依赖关系总是单向的。

可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用。

在java 中. 依赖关系体现为: 局部变量, 方法中的参数, 和对静态方法的调用.
关联(association)关系: 表示类与类之间的联接, 它使一个类知道另一个类的属性和方法.
关联可以使用单箭头表示单向关联, 使用双箭头或不使用箭头表示双向关联, 不建议使用双向关联. 关联有两个端点, 在每个端点可以有一个基数, 表示这个关联的类可以有几个实例.
常见的基数及含义:
0..1:0 或1 个实例.
0..*: 对实例的数目没有限制.
1: 只能有一个实例.
1..*: 至少有一个实例.
他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的,表现在代码层面,为被关联类
B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;在java 语言中关联关系是使用实例变量实现的.
聚合(aggregation)关系: 关联关系的一种特例, 是强的关联关系. 聚合是整体和个体之间的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;
聚合关系也是使用实例变量实现的. 从java 语法上是分不出关联和聚合的.
关联关系中两个类是处于相同的层次, 而聚合关系中两不类是处于不平等的层次, 一个表示整体, 一个表示部分.
组合(合成)关系(composition): 也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;合成关系不能共享. 。

表现在代码层面,和关联关系是一致的,只能从语义级别来区分。

组合跟聚合几乎相同,唯一的区别就是“部分”不能脱离“整体”单独存在,就是说,“部分”的生命期不能比“整体”还要长。

用力活动状态交通顺序制时(动8):用例活动状态交互通信顺序制品定时对付狗类不保(静6):对象复合结构构件类部署包。

相关主题