类与类图
类图:
类图是由许多(静态)说明性的模型元素(例如类、包和它们之间的关系,这些元素和它们的内容互相链接)组成。类图可以组织在(并且属于)包中,仅显示特定包中的相关内容。
类图最基本的元素:类或者接口。
类:
一般含有3个组成部分: (类名部分可以省略,其他不能)
1>类名
2>属性
3>类提供的方法
4>类的性质
5>内部类
类名书写规范:
1>正体------可被实例化的
2>斜体--------抽象类
属性和方法书写规范:
1>修饰符--------[描述信息]
2>属性和方法------------[参数] [:返回类型|类型]
属性和方法前可附加的可见性修饰符:
(省略这些修饰符表示具有包级别的可见性)
1>加号(+)-----------public
2>减号(-)------------private
3> (#)------------protected
If属性or方法有下划线---------静态
描述信息使用:<<开头和使用>>j结尾
类性质的组成: (书写方式和类方法类似)
(1):一个属性
(2):一个赋值方法
(3):一个取值方法
类封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性,操作,关系对象集合的总称。
在系统中,每个类具有一定的职责,职责是类所承担的任务,即类要完成什么样的功能,要承担什么样的任务。一个类可以有很多的职责,设计的好的类一般只有一种职责,在定义类的时候,将了的职责分解为类的属性和操作(即方法)。类的属性即类的数据职责,类的操作即类的行为职责。
包(Package):
一种常规用途的组合机制。UML中的一个包直接对应于Java中,一个包可能含有其他包,类或者同事含有这两者。进行建模时,通常使用逻辑性的包,用于对模型进行组织;使用物理性的包,用于转换成Java包,每个包的名称对这个包进行了唯一性的标识。
接口(Interface):
接口是一系列操作的集合,它指定了一个类所提供的服务。它直接对应于Java中的一个接口类型。接口的表示大概有两种方式。
关系:
(一)常见关系:
1>继承(Inheritance)
2>关联(Association)
3>聚合(Aggregation)
4>复合(Composition)
5>依赖(Dependency)
(二)一般关系表现:
1>继承或实现------is a
2>关联---------has a(变量)
3>依赖---------use a(函数中参数)
(三):
1>一般化关系:表示为类与类的继承关系,接口与接口之间的继承,类对接口的实现关系。
表示方法
(1) 空心箭头 + 实线 (箭头指向父类)
(2) 若父类是接口: 空心箭头 + 虚线
2>关联关系:类于类之间的联接,它使一个类知道另一个类的属性和方法。
表示方法
实线 + 箭头 (箭头指向被使用的类)
3>聚合关系:是关联关系的一种,是强的关联关系。聚合关系就是整体和各体的关系。关联关系的两个类处于同一个层次上,而聚合关系两个类处于不同的层次,一个是整体一个是部分。
表示方法
空心菱形 + 实线 + 箭头 (箭头指向部分)
4>合成关系:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,合成关系不能共享。
表示方法
实心菱形 + 实线 + 箭头
5>依赖关系:是类与类之间的连接,表示一个类依赖于另一个类的定义。列如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。
表示方法
虚线 + 箭头 (箭头指向被依赖的一方,也就是指向局部变量)
方法参数示例:
Public class Person {
Void buy(Car car) {
---------
}
}
-…
各种关系强弱顺序
泛化=实现>组合>聚合>关联>依赖