300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > idea uml图各符号含义_java利器之UML类图详解(IDEA)

idea uml图各符号含义_java利器之UML类图详解(IDEA)

时间:2020-08-27 21:54:09

相关推荐

idea uml图各符号含义_java利器之UML类图详解(IDEA)

一、概述

类图(Class Diagram)是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。

类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。

类图不仅用于可视化描述和记录系统的不同方面,也为构建可执行代码的软件应用程序。

类图描述一类的属性和操作,也对系统的约束。被广泛应用于类图的建模的面向对象的系统中,因为它们是唯一的,可以直接映射到面向对象的语言的 UML 图。

类图显示集合的类,接口,关联,协作和约束,它也被称为作为结构图。

二、类的UML表示

1. 类图(ClassDiagram)

idea类图示意图

2. 类图对应java实例

publicclassClassDiagramDemo{

publicintid;

protectedStringname;

intage;

privateStringpassword;

publicvoidsetId(intid){

this.id=id;

}

protectedvoidsetName(Stringname){

this.name=name;

}

voidsetAge(intage){

this.age=age;

}

privatevoidsetPassword(Stringpassword){

this.password=password;

}

}

3. 注意

实际类图中"可见性"表示该属性对于类外的元素而言是否可见,包括公有(public)、私有(private),友好的(friendly,代表package)和受保护(protected)三种,在类图中分别用符号+、-,~和#表示。

三、类之间的关系

1. 依赖关系(Dependence)

定义:只要在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编译都通过不了。

依赖关系

publicclassPersonServiceBean{

privatePersonDaopersonDao;

publicvoidSave(Personperson){}

publicIDCardgetIDCard(intpersonid){returnnull;}

publicvoidmodify(){

Departmentdepartment=newDepartment();

}

}

classIDCard{

}

classPerson{

}

classPersonDao{

}

classDepartment{

}

小结:

类中用到了对方

类中的成员属性

方法的返回类型

方法接收的参数类型

方法中有使用到

2. 泛化关系(Generalization)

定义:泛化关系实际上就是继承关系,它是依赖关系的一种特例。

泛化关系

publicclassA{

}

publicclassBextendsA{

}

小结:

泛化关系即继承关系

如果B继承了A,则A和B之间存在泛化关系

3. 实现关系(Implementation)

定义:实现关系实际上就是A类实现B类,它是依赖关系的特例。

实现关系

publicinterfaceService{

}

publicclassServiceImplimplementsService{

}

小结:如果B实现了A,则A和B之间存在实现关系

4. 关联关系(Association)

定义:关联关系实际上就是类与类之间的联系,它是依赖关系的特例。存在单向关联,双向关联和自关联。

单向关联

定义:类A与类B是单向关联关系,是指类A包含类B对象的引用,但是类B并不包含类A对象的引用。

单向关联

publicclassCustomer{

privateAddressaddress;

}

publicclassAddress{

}

小结:顾客(Customer)拥有地址(Address),Customer类的属性中有Address类的对象,则Customer类与Address类具有单向关联关系。2. 双向关联

定义:类A与类B如果包含对方的引用,则称类A与类B是双向关联的关系。

双向关联

publicclassStudent{

privateTeacherteacher;

}

publicclassTeacher{

privateStudentstudent;

}

小结:老师(Teacher)教育的学生(Student),反之,接受教育的学生总有某个老师与之相关联。因此,Teacher类和Student类之间具有双向关联关系。

自关联

定义:自己包含自己。

publicclassStudentNode{

privateStudentNodenext;

publicvoidsetNext(StudentNodenext){

this.next=next;

}

}

5. 聚合关系(Aggregation)

定义:聚合关系表示的是整体和部分的关系,整体和部分可以分开。

聚合关系

publicclassCar{

privateWheelwheel;

publicvoidsetWheel(Wheelwheel){

this.wheel=wheel;

}

}

publicclassWheel{

}

6. 组合关系(Composition)

定义:组合关系表示的是整体和部分的关系,整体和部分不可分开。

组合关系

publicclassFace{

privateNosenose;

publicFace(Nosenose){

this.nose=nose;

}

}

publicclassNose{

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。