一,类
面向对象程序设计语言的一个术语
采用面向过程,考虑系统最先考虑功能
采用面向对象,考虑系统最先考虑类
第一行:类名称
第二行:属性名称(可隐藏)
第三行:方法名称(可隐藏){add,move}
二,类的关系
1.关联:
普通关联:两个类有结构关系。用直线表示。
关联名称:描述关系性质
角色:角色是关联中靠近它的一端的类对另外端的类呈现的职责。
多重性:关联角色的多重性是说明一个关联的实例中有多少相互连接的对象。
关联还分多单项关联和多项关联
两个类之间可以有多种关联
一个类和多个类关联的图表示
自身关联:一个类和自己建立了关系。
聚合:描述整体和部分关系,空心菱形表示。可独立存在。
组合:描述整体和部分关系,实心菱形表示,指向整体部分。不能独立存在。
两个对象之间的链接本身可以拥有自己的属性和行为,如果把连接看作是
一个类的实例,则该类称为关联类。
2.依赖关系(虚线箭头表示,箭头表示被依赖一方。)
依赖是一种是使用关系。说明一个事物规格的变化可能影响到使用它的另一个事物。但反之未必。
3.泛化关系
继承有父类和子类
空心三角形表示继承。
单重继承:有且只有一个父类
多重继承:可以有多个父类。
4实现关系
实现是类元之间的语义关系,在该关系中一个类元描述了另一个类元保证实现的契约。
在类图中,能用继承关系就用继承关系。然后,能用关联就用关联。最后是依赖关系。
java没有多重继承
三,类图的构成
描述系统静态部分:可见性,范围,属性,操作,模板类,实用类。
public(公共):+
protected(系统内):#
private(私有):-
Package(高级别):~
静态成员(有下划线):对一个类的所有实例共享一个成员。
抽象类:不能实例化 (字体是斜体是抽象类)
类的关系类的多重性
四,包图
包的作用:1.逻辑上把一个复杂的图模块化 2.组织源代码
包的元素:
1.类,接口,构件,用例,其他包等。
2.包被撤销了,则其中的元素也被撤销了。
包和包关系:
1.泛化
2.细化
3.依赖(如果两个包的任意两个类之间有依赖关系,则这两个包之间有一来关系。)
五,对象图
对象图描述一个系统在某个具体时刻的静态结构。而类图描述的是所有情况。系统某一运行时刻的快照。
实例: