当前位置:   article > 正文

类图 关联关系 限定词 java实现_java利器之UML类图详解(IDEA)

类图限定符怎么用

1570b667fb56e3041da326c8bf4a805d.png

一、概述

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

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

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

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

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

二、类的UML表示

1. 类图(ClassDiagram)

d5ec586325edf5b05a03086f8c45cdfe.png

2. 类图对应java实例

  1. public class ClassDiagramDemo {
  2. public int id;
  3. protected String name;
  4. int age;
  5. private String password;
  6. public void setId(int id) {
  7. this.id = id;
  8. }
  9. protected void setName(String name) {
  10. this.name = name;
  11. }
  12. void setAge(int age) {
  13. this.age = age;
  14. }
  15. private void setPassword(String password) {
  16. this.password = password;
  17. }
  18. }

3. 注意

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

三、类之间的关系

1. 依赖关系(Dependence)

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

2051da4221ac0806966f823e81ff192d.png
  1. public class PersonServiceBean {
  2. private PersonDao personDao;
  3. public void Save(Person person){}
  4. public IDCard getIDCard(int personid){return null;}
  5. public void modify(){
  6. Department department = new Department();
  7. }
  8. }
  9. class IDCard {
  10. }
  11. class Person {
  12. }
  13. class PersonDao {
  14. }
  15. class Department {
  16. }

小结:

  1. 类中用到了对方
  2. 类中的成员属性
  3. 方法的返回类型
  4. 方法接收的参数类型
  5. 方法中有使用到

2. 泛化关系(Generalization)

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

f6b0ee3f16f298a88913a9e23e035d58.png
  1. public class A {
  2. }
  3. public class B extends A {
  4. }

小结:

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

3. 实现关系(Implementation)

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

1a88388d049e8e473618ad42f873d2b8.png
  1. public interface Service {
  2. }
  3. public class ServiceImpl implements Service {
  4. }

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

4. 关联关系(Association)

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

  1. 单向关联

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

72833d8ffa9e6a20d6f25d4cc8ac8f01.png
  1. public class Customer {
  2. private Address address;
  3. }
  4. public class Address {
  5. }

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

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

b815725fd5ec1136fd1701ea754ab6f8.png
  1. public class Student {
  2. private Teacher teacher;
  3. }
  4. public class Teacher {
  5. private Student student;
  6. }

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

  1. 自关联

定义:自己包含自己。

  1. public class StudentNode {
  2. private StudentNode next;
  3. public void setNext(StudentNode next) {
  4. this.next = next;
  5. }
  6. }

5. 聚合关系(Aggregation)

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

69b13bb1984810e7bcfad68fe861fc37.png
  1. public class Car {
  2. private Wheel wheel;
  3. public void setWheel(Wheel wheel) {
  4. this.wheel = wheel;
  5. }
  6. }
  7. public class Wheel {
  8. }

6. 组合关系(Composition)

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

b441a0ca2a9dad4d7156a4b40ba6e8f3.png
  1. public class Face {
  2. private Nose nose;
  3. public Face(Nose nose) {
  4. this.nose = nose;
  5. }
  6. }
  7. public class Nose {
  8. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/404033
推荐阅读
相关标签
  

闽ICP备14008679号