栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

UML(一)Class 类图

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

UML(一)Class 类图

类 class

类图最上部分方框为 类名称
中间部分为 类属性
最下的方框为 类方法

类名称是强制的,因为类的属性和方法很有可能在规划的时候无法穷尽其方法和属性。所有有时候只标注一个类名称
属性,方法的书写格式


名称:类型(方法为返回值类型)

最前面的符号表示 类属性和方法的权限

public 用+表示
private 用-表示
protected 用#表示
package 用~表示
static 下划线 _ 表示

class 类名:
{
   public://公有成员 
       int num;
   private:私有成员
       int age;
   protected:保护成员
       int sex;
};

类的public成员可以被任意实体访问,你可以认为它就是c语言中的struct结构体,可以直接用a.x这种形式访问;
类的private成员不能直接被类的实体访问,也不能被子类的实体访问,但是可以被类的成员函数访问;
类的protected成员不能直接被类的实体访问,但是可以被子类访问,也可以被类的成员函数访问;

接口interface
接口是一组操作的集合,其中的每个操作用于描述类或组件的一个服务。

接口的图表和类非常相似 《》 尖括号代表接口

类间关系
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

依赖(Dependency)
依赖表示一个类以某种形式依赖于其他类。 当两个类处于依赖关系中时,其中一个类的改变可能会影响另一个类。 在程序代码中,依赖关系意味着一个类的对象出现在另一个类的操作中。
依赖关系是一种偶然的、较弱的使用关系,特定事物的改变可能影响到使用该事情的其它事物,在需要表示一个事物使用另一个事物时使用依赖关系。

依赖关系的表现形式
B类的实例作为A类方法的参数
B类的实例作为A类方法的局部变量

A类调用B类的静态方法
例如 人依赖于空气

这种依赖关系 是类和类间的关系,用带箭头的虚线表示。

关联
关联(Association)关系是一种结构化关系,用于表示一类对象与另一类对象之间的联系。
,通常将一个类的对象作为另一个类的成员变量。
关联关系是类与类之间的联接,它使一个类知道另一个类的属性和方法。关联可以是双向的,也可以是单向的,它是依赖关系更强的一种关系。

单向关联用带箭头的实线表示,同时一方持有另一方的实例,并且由于是单向关联,如果在关联线上注明关系,则只可注明单向的关系

用实线箭头表示

自关联是指属性类型为该类本身。例如在链表中,每个节点持有下一个节点的实例,如下图所示


默认情况下,关联是双向的。例如数据库管理员(DBA)管理数据库(DB),同时每个数据库都被某位管理员管理。因此,DBA和DB之间具有双向关联关系,如下图所示。

继承
Generalization
泛化(Generalization)关系,用于描述父类与子类之间的关系,父类又称作超类或者其类,子类又称为派生类。注意,父类和子类都可为抽象类或者具体类。
继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。
子类能吸收已有类的属性和行为,并能拓展新的能力


人 继承于动物
符号为 实线空心三角

聚合
聚合(Aggregation)关系表示整体与部分的关系。在聚合关系中,部分对象是整体对象的一部分,但是部分对象可以脱离整体对象独立存在,也即整体对象并不控制部分对象的生命周期。从代码实现上来讲,部分对象不由整体对象创建,一般通过整体类的带参构造方法或者Setter方法或其它业务方法传入到整体对象,并且有整体对象以外的对象持有部分对象的引用。

在UML类图中,聚合关系由带箭头的实线表示,并且实线的起点处以空心菱形表示,如下图所示。
表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期

人群是人的聚合。 一个人离开,人群不一定消失,有着各自的生命周期。

组合
组合(Composition)关系也表示类之间整体和部分的关系,但是在组合关系中整体对象控制成员对象的生命周期,一旦整体对象不存在了,成员对象也即随之消亡。

从代码实现上看,一般在整体类的构造方法中直接实例化成员类,并且除整体类对象外,其它类的对象无法获取该对象的引用。
组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样
人和头
头是人的组件,生命周期一样。

实现Realization
实现表示一个class类实现interface接口(可以是多个)的功能。
在UML类图中,类与接口间的实现关系用带空心三角形的虚线表示。同时类中也需要列出接口中所声明的所有方法(这一点与类间的继承关系表示不同)。

棒棒糖表示法

最后理清一下思路看一个例子

视角

如果需要把一个项目中所有的类和类的关系一次性描述清楚,是极其困难的

conceptual perspective
在画一只马的时候可以先画一个简图,这就是概念图


无论用什么语言去实线,概念图都是一样的。

specification perspective


这个阶段有时候可以看到一些软件接口

实现阶段

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781541.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号