对象:一组属性及这组属性的操作封装体,通常由三部分组成(对象名,属性,操作)
类:具有一组相同属性或操作的对象的集合(类名,属性,操作),没有实例的类称为抽象类;
继承:继承关系表示了对象间"is-a"的关系,对于两个类A和B,如果A类是B类的子类,则说B类是A类的泛化。
类的成员:类的成员有动态和静态之分,默认情况下,为动态成员。静态成员包括静态方法和静态属性
多态性:多态性是指同一个操作作用于不同的对象可以有不同的解释,产生不同的执行结果。多态性密切相关的一个概念就是动态绑定。传统的程序设计语言把过程调用与目标代码的连接放在程序运行前进行,称为静态绑定。
通用多态
参数多态:一个方法,参数个数和参数类型不同;
包含多态:参数采用Object或基类,其子类也可以作为参数;
特定多态
过载多态:String 的 + 代表拼接,int 的 + 代表相加;
强制多态: 变量 int 和 String 的 ‘+’ ,强制转换为String 拼接;
UML有四种事务:
1)结构事务:名词,静态部分,物理元素()
2)行为事务:动词,动态部分,行为(消息,状态,动作)
3)分组事务:包
4)注释事务:注解
由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。用例图是系统的蓝图,用于需求分析阶段。
类图是静态视图,
类图中包括:
•(1)类
•(2)接口
•(3)协作
•(4)依赖、泛化和关联关系
类图的分类:
1)实体类:实体类对应系统需求中的每个实体,它们通常需要保存在永久存储体中,一般使用数据库表或文件来记录,实体类既包括存储和传递数据的类,还包括操作数据的类。实体类来源于需求说明中的名词。
2) 控制类:控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度
3) 边界类:边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单等。
类之间的关系:
•依赖(Dependency)
是一种使用的关系, 即一个类的实现需要另一个类的协助, 所以要尽量不使用双向的互相依赖。依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。
•泛化(Generalization)关系
•子类继承自父类,父类是子类的泛化。
• 关联(Association)
是一种拥有的关系, 它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子.
•聚合(Aggregation)
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的.
•组合(Composition)
•组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。在UML中,组合关系用带实心菱形的直线表示。
•实现关系(Implementation)
•是用来规定接口和实现接口的类或者构建结构的关系,接口是操作的集合,而这些操作就用于规定类或者构建的一种服务。
•对象图(ObjectDiagram) 展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照。
对象:图中的矩形元素即为对象,其中冒号前面部分为对象名,后面为类名,表示类的一个实例。
链接:用两个对象之间的单一线条表示,用来在通信图中关联对象,目的是让消息在不同系统对象之间传递。可以理解链接是公路,消息是车。
消息:通信图中对象之间通信的方式。
将进程或其他计算的结构展示为计算内部一步步的控制流和数据流,主要用来描述系统的动态视图。
11. UML分类