OOAD 学习笔记 四
来源:互联网 发布:mysql relay log 作用 编辑:程序博客网 时间:2024/06/10 00:20
对象:具有明确语义边界并封装了状态和行为的实体,由一组属性和作用在这组属性的一组操作构成。它是构成软件系统的一个基本单位。
类:对具有相同属性和操作的一组对象的统一抽象描述,对象是类的实体。
对象和类的表示法:38页,图4-1 , 4-2
抽象类的表示法:用斜体类名,或类名后加上{abstract}
与属性相关的概念:
属性是用来描述对象性质的一个数据项。
在类和对象中,每个属性都有唯一的名字。
类属性(静态属性):若类的一个属性对所有对象来说,值都是相同的。
属性的表示法:45页,图4-4
属性可见性的表示法:+(public),#(protected),-(private),~(default,即包内可见)
与操作相关的概念:
操作是类的对象被要求提供的服务的规约。
类操作(静态方法):仅用于操作类属性的操作,不能操作对象属性。
对象操作:简称操作,不属于类操作的操作都是对象操作。
抽象操作:一个类中存在着没有实现,也没打算在该类中实现的操作,称该操作为抽象操作。
特征标记:相当于方法头(如:public void function(String str))
抽象操作的表示:用斜体的特征标记来表示,或者特征标记后加上{abstract}
操作可见性的表示法:同上。
类之间的3种关系:继承,关联,(聚合),依赖
继承:
继承表示的是一般类和特殊类之间的关系。
一般类和特殊类的关系:50页,图4-6
UML中把继承称为泛化。
继承的数学性质:非对称性和传递性。
继承可进一步分为:单继承和多继承。
继承表示法:51页,图4-7
关联:
静态关系:一个事物通过记录另一个事物的标识以访问对方所形成的关系(如:司机和他的汽车,学生和他的老师等)
动态关系:对象之间在行为和操作上的依赖关系。
关联主要表达的是对象的静态关系。
关联:一个或一组类的对象集合的笛卡尔积上的一个子集合(即一个由对象偶尔构成的集合),这种类间关系用于刻画事物间的联系。
二元关联:两个类之间的联系。
一元关联:一个类与自身关联。
关联表示法:58页,图4-18
单向关联表示法:58页,图4-19
可导航:一个类的对象可以直接访问另一个类的对象。
不可导航:只是不能直接访问,不代表不能间接访问。
链:关联的一个实例,用于刻画具体事物间的关系。
多重性:在关联的两端写有表示数量约束的数字或符号。
关联角色:在关联的每个端点上可以有一个名字,表示在该关联中该端点连接的类所扮演的角色,这个名字称之为关联角色。
如果在关联中使用角色名,则可以不用给关联命名。
关联类:兼有关联和类的双重特征的建模元素,既可以把关联类看成具有类特征的关联,也可以看成是具有关联特征的类。
关联类的表示法:62页,图4-33
N元关联:两个以上的类之间的关联。
N元关联表示法:64页,图4-38
限定符:限定符的值用于确定该关联的另一端类的对象,即给定类的一个对象,并指定限定符内的属性值,就能唯一确定另一端类的一个对象或是一组对象。在实际环境中,可以把限定符的属性用来作索引或查询关键字。
限定关联表示法:65页,图4-40
关联示例:66页,图4-41 , 图4-42
聚合:
聚合是表示整体的类和表示部分的类之间的“整体-部分”关系;或是说,一个类的对象,是另一个类对象的组成部分。
在聚合中,把“整体”的类称为聚集(聚合的集合),“部分”的类称为成分。
聚合的数学性质:非对称性,传递性
组合:是聚合的一种形式,一个部分类的对象在一个时刻必须最多属于一个整体类的对象,且整体类的对象管理它的部分类的对象。
组合和聚合的区别:67页,图4-44
把聚合表示成一条一端带有菱形的线段,菱形指向聚集的一端。如果是组合,菱形是黑色的。
聚合组合表示法:68页,图4-45
依赖:
依赖表明一个元素(源元素)的定义或实现依赖于另一个元素(被依赖元素)的实现或定义。
用况图中的包含和扩展,就是依赖。
依赖表示为两个建模元素之间的虚箭线。
依赖表示法:71页,图4-50
接口:
接口的一种含义是一个类对外提供的一组操作(服务);把这组操作组织起来,作为该类的一组接口,并称该类提供了对其接口的实现。
另一种含义是纯粹的,就像Java的接口那样,只给出操作说明,不给出实现。
接口定义了一个契约,在接口两端的类可以自由变更,但是必须遵循这个契约。
一个类可以实现一个或多个接口,这样的接口称为类的供接口;一个或多个类可以使用一个或多个接口,这样的接口称为需接口。
接口表示法:72页,图4-53 , 图4-54 , 图4-55
- OOAD 学习笔记 四
- OOAD笔记四
- OOAD&UML学习笔记
- OOAD学习笔记
- OOAD 学习笔记 一
- OOAD 学习笔记 二
- OOAD 学习笔记 三
- OOAD 学习笔记 五
- OOAD 学习笔记 六
- OOAD 学习笔记 七
- OOAD 学习笔记 八
- OOAD 学习笔记 九
- OOAD 学习笔记 十
- OOAD学习笔记
- OOAD&UML学习笔记
- OOAD学习笔记(1)
- OOAD 及 UML 学习笔记
- UML学习笔记(2)OOAD
- Ubuntu-14.04 安装qemu-kvm调试Linux-3.16.0的内核(一)
- 是道镇墓压胜的符
- 快速排序算法和冒泡排序
- Mybatis学习(三)搭建mybatis的入门程序的运行环境
- 京东测试工作的思考与总结
- OOAD 学习笔记 四
- 牛人博客
- 拿来老外的 layoutSubviews
- java获取图片像素点的RGB值
- 生成随机数
- 从 Kubernetes 谈容器网络
- 结构性伪类选择器
- 新gre考位放出时间:GRE考位已满怎么办?
- Uva - 213 - Message Decoding