关于Java中UML图的说明
- 1 类图
- 1 类的表示方法
- 2 类之间的关系
- 1 关联关系
- 2 聚合关系
- 3 组合关系
- 4 依赖关系
- 5 继承关系
- 6 实现关系
在学习Spring源码过程中,出现了非常多的设计模式等,也因此需要去查看UML图,对于UML图的相关知识,整理一下.
统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。
UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。
Java作为一款优秀的面向对象的编程语言,使用UML的类图能够更好表达出其对象间的结构关系.
1 类图
类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分,可以简化了人们对系统的理解.
1 类的表示方法
在UML类图中,类使用包含类名(className)、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个用户User类,它包含name,age和address这3个属性,以及work()方法。
#mermaid-svg-UKXQcKon2KMhphmT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-UKXQcKon2KMhphmT .error-icon{fill:#552222;}#mermaid-svg-UKXQcKon2KMhphmT .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-UKXQcKon2KMhphmT .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-UKXQcKon2KMhphmT .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-UKXQcKon2KMhphmT .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-UKXQcKon2KMhphmT .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-UKXQcKon2KMhphmT .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-UKXQcKon2KMhphmT .marker{fill:#333333;stroke:#333333;}#mermaid-svg-UKXQcKon2KMhphmT .marker.cross{stroke:#333333;}#mermaid-svg-UKXQcKon2KMhphmT svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-UKXQcKon2KMhphmT g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-UKXQcKon2KMhphmT g.classGroup text .title{font-weight:bolder;}#mermaid-svg-UKXQcKon2KMhphmT .nodeLabel,#mermaid-svg-UKXQcKon2KMhphmT .edgeLabel{color:#131300;}#mermaid-svg-UKXQcKon2KMhphmT .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-UKXQcKon2KMhphmT .label text{fill:#131300;}#mermaid-svg-UKXQcKon2KMhphmT .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-UKXQcKon2KMhphmT .classTitle{font-weight:bolder;}#mermaid-svg-UKXQcKon2KMhphmT .node rect,#mermaid-svg-UKXQcKon2KMhphmT .node circle,#mermaid-svg-UKXQcKon2KMhphmT .node ellipse,#mermaid-svg-UKXQcKon2KMhphmT .node polygon,#mermaid-svg-UKXQcKon2KMhphmT .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-UKXQcKon2KMhphmT .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-UKXQcKon2KMhphmT g.clickable{cursor:pointer;}#mermaid-svg-UKXQcKon2KMhphmT g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-UKXQcKon2KMhphmT g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-UKXQcKon2KMhphmT .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-UKXQcKon2KMhphmT .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-UKXQcKon2KMhphmT .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-UKXQcKon2KMhphmT .dashed-line{stroke-dasharray:3;}#mermaid-svg-UKXQcKon2KMhphmT #compositionStart,#mermaid-svg-UKXQcKon2KMhphmT .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UKXQcKon2KMhphmT #compositionEnd,#mermaid-svg-UKXQcKon2KMhphmT .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UKXQcKon2KMhphmT #dependencyStart,#mermaid-svg-UKXQcKon2KMhphmT .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UKXQcKon2KMhphmT #dependencyStart,#mermaid-svg-UKXQcKon2KMhphmT .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UKXQcKon2KMhphmT #extensionStart,#mermaid-svg-UKXQcKon2KMhphmT .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UKXQcKon2KMhphmT #extensionEnd,#mermaid-svg-UKXQcKon2KMhphmT .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UKXQcKon2KMhphmT #aggregationStart,#mermaid-svg-UKXQcKon2KMhphmT .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UKXQcKon2KMhphmT #aggregationEnd,#mermaid-svg-UKXQcKon2KMhphmT .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-UKXQcKon2KMhphmT .edgeTerminals{font-size:11px;}#mermaid-svg-UKXQcKon2KMhphmT :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
User
- name : String
- age : int
- address : String
+work()
属性/方法名称前加的加号和减号表示了这个属性/方法的可见性,UML类图中表示可见性的符号有三种:
- +:表示public
- -:表示private
- #:表示protected
- 默认不填: 表示default
属性的完整表示方式是: 可见性 名称 :类型 [ = 缺省值]
方法的完整表示方式是: 可见性 名称(参数列表) [ : 返回类型]
注意:
1,中括号中的内容表示是可选的
2,也有将类型放在变量名前面,返回值类型放在方法名前面
2 类之间的关系
1 关联关系
关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,通常分为一般关联关系、聚合关系和组合关系.
1 单向关联
在UML类图中单向关联用一个带箭头的实线表示。表示每个用户对象都有一个地址对象.
#mermaid-svg-eCj6EGPR3Q91TKNW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-eCj6EGPR3Q91TKNW .error-icon{fill:#552222;}#mermaid-svg-eCj6EGPR3Q91TKNW .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-eCj6EGPR3Q91TKNW .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-eCj6EGPR3Q91TKNW .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-eCj6EGPR3Q91TKNW .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-eCj6EGPR3Q91TKNW .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-eCj6EGPR3Q91TKNW .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-eCj6EGPR3Q91TKNW .marker{fill:#333333;stroke:#333333;}#mermaid-svg-eCj6EGPR3Q91TKNW .marker.cross{stroke:#333333;}#mermaid-svg-eCj6EGPR3Q91TKNW svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-eCj6EGPR3Q91TKNW g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-eCj6EGPR3Q91TKNW g.classGroup text .title{font-weight:bolder;}#mermaid-svg-eCj6EGPR3Q91TKNW .nodeLabel,#mermaid-svg-eCj6EGPR3Q91TKNW .edgeLabel{color:#131300;}#mermaid-svg-eCj6EGPR3Q91TKNW .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-eCj6EGPR3Q91TKNW .label text{fill:#131300;}#mermaid-svg-eCj6EGPR3Q91TKNW .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-eCj6EGPR3Q91TKNW .classTitle{font-weight:bolder;}#mermaid-svg-eCj6EGPR3Q91TKNW .node rect,#mermaid-svg-eCj6EGPR3Q91TKNW .node circle,#mermaid-svg-eCj6EGPR3Q91TKNW .node ellipse,#mermaid-svg-eCj6EGPR3Q91TKNW .node polygon,#mermaid-svg-eCj6EGPR3Q91TKNW .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-eCj6EGPR3Q91TKNW .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-eCj6EGPR3Q91TKNW g.clickable{cursor:pointer;}#mermaid-svg-eCj6EGPR3Q91TKNW g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-eCj6EGPR3Q91TKNW g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-eCj6EGPR3Q91TKNW .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-eCj6EGPR3Q91TKNW .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-eCj6EGPR3Q91TKNW .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-eCj6EGPR3Q91TKNW .dashed-line{stroke-dasharray:3;}#mermaid-svg-eCj6EGPR3Q91TKNW #compositionStart,#mermaid-svg-eCj6EGPR3Q91TKNW .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-eCj6EGPR3Q91TKNW #compositionEnd,#mermaid-svg-eCj6EGPR3Q91TKNW .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-eCj6EGPR3Q91TKNW #dependencyStart,#mermaid-svg-eCj6EGPR3Q91TKNW .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-eCj6EGPR3Q91TKNW #dependencyStart,#mermaid-svg-eCj6EGPR3Q91TKNW .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-eCj6EGPR3Q91TKNW #extensionStart,#mermaid-svg-eCj6EGPR3Q91TKNW .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-eCj6EGPR3Q91TKNW #extensionEnd,#mermaid-svg-eCj6EGPR3Q91TKNW .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-eCj6EGPR3Q91TKNW #aggregationStart,#mermaid-svg-eCj6EGPR3Q91TKNW .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-eCj6EGPR3Q91TKNW #aggregationEnd,#mermaid-svg-eCj6EGPR3Q91TKNW .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-eCj6EGPR3Q91TKNW .edgeTerminals{font-size:11px;}#mermaid-svg-eCj6EGPR3Q91TKNW :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
User
-address : Address
Address
-name : String
2 双向关联
双向关联就是双方各自持有对方类型的成员变量.
#mermaid-svg-4FsxL4Bs8c9Kyv48 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .error-icon{fill:#552222;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .marker.cross{stroke:#333333;}#mermaid-svg-4FsxL4Bs8c9Kyv48 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-4FsxL4Bs8c9Kyv48 g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-4FsxL4Bs8c9Kyv48 g.classGroup text .title{font-weight:bolder;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .nodeLabel,#mermaid-svg-4FsxL4Bs8c9Kyv48 .edgeLabel{color:#131300;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .label text{fill:#131300;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .classTitle{font-weight:bolder;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .node rect,#mermaid-svg-4FsxL4Bs8c9Kyv48 .node circle,#mermaid-svg-4FsxL4Bs8c9Kyv48 .node ellipse,#mermaid-svg-4FsxL4Bs8c9Kyv48 .node polygon,#mermaid-svg-4FsxL4Bs8c9Kyv48 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-4FsxL4Bs8c9Kyv48 g.clickable{cursor:pointer;}#mermaid-svg-4FsxL4Bs8c9Kyv48 g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-4FsxL4Bs8c9Kyv48 g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .dashed-line{stroke-dasharray:3;}#mermaid-svg-4FsxL4Bs8c9Kyv48 #compositionStart,#mermaid-svg-4FsxL4Bs8c9Kyv48 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4FsxL4Bs8c9Kyv48 #compositionEnd,#mermaid-svg-4FsxL4Bs8c9Kyv48 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4FsxL4Bs8c9Kyv48 #dependencyStart,#mermaid-svg-4FsxL4Bs8c9Kyv48 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4FsxL4Bs8c9Kyv48 #dependencyStart,#mermaid-svg-4FsxL4Bs8c9Kyv48 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4FsxL4Bs8c9Kyv48 #extensionStart,#mermaid-svg-4FsxL4Bs8c9Kyv48 .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4FsxL4Bs8c9Kyv48 #extensionEnd,#mermaid-svg-4FsxL4Bs8c9Kyv48 .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4FsxL4Bs8c9Kyv48 #aggregationStart,#mermaid-svg-4FsxL4Bs8c9Kyv48 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4FsxL4Bs8c9Kyv48 #aggregationEnd,#mermaid-svg-4FsxL4Bs8c9Kyv48 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-4FsxL4Bs8c9Kyv48 .edgeTerminals{font-size:11px;}#mermaid-svg-4FsxL4Bs8c9Kyv48 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
User
-address : Address
Address
-user : User
3 自关联
自关联, 使用一个带有箭头且指向自身的线表示自己包含自己.
#mermaid-svg-gQsN9j8TfV8a6XZp {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-gQsN9j8TfV8a6XZp .error-icon{fill:#552222;}#mermaid-svg-gQsN9j8TfV8a6XZp .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-gQsN9j8TfV8a6XZp .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-gQsN9j8TfV8a6XZp .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-gQsN9j8TfV8a6XZp .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-gQsN9j8TfV8a6XZp .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-gQsN9j8TfV8a6XZp .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-gQsN9j8TfV8a6XZp .marker{fill:#333333;stroke:#333333;}#mermaid-svg-gQsN9j8TfV8a6XZp .marker.cross{stroke:#333333;}#mermaid-svg-gQsN9j8TfV8a6XZp svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-gQsN9j8TfV8a6XZp g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-gQsN9j8TfV8a6XZp g.classGroup text .title{font-weight:bolder;}#mermaid-svg-gQsN9j8TfV8a6XZp .nodeLabel,#mermaid-svg-gQsN9j8TfV8a6XZp .edgeLabel{color:#131300;}#mermaid-svg-gQsN9j8TfV8a6XZp .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-gQsN9j8TfV8a6XZp .label text{fill:#131300;}#mermaid-svg-gQsN9j8TfV8a6XZp .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-gQsN9j8TfV8a6XZp .classTitle{font-weight:bolder;}#mermaid-svg-gQsN9j8TfV8a6XZp .node rect,#mermaid-svg-gQsN9j8TfV8a6XZp .node circle,#mermaid-svg-gQsN9j8TfV8a6XZp .node ellipse,#mermaid-svg-gQsN9j8TfV8a6XZp .node polygon,#mermaid-svg-gQsN9j8TfV8a6XZp .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-gQsN9j8TfV8a6XZp .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-gQsN9j8TfV8a6XZp g.clickable{cursor:pointer;}#mermaid-svg-gQsN9j8TfV8a6XZp g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-gQsN9j8TfV8a6XZp g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-gQsN9j8TfV8a6XZp .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-gQsN9j8TfV8a6XZp .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-gQsN9j8TfV8a6XZp .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-gQsN9j8TfV8a6XZp .dashed-line{stroke-dasharray:3;}#mermaid-svg-gQsN9j8TfV8a6XZp #compositionStart,#mermaid-svg-gQsN9j8TfV8a6XZp .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gQsN9j8TfV8a6XZp #compositionEnd,#mermaid-svg-gQsN9j8TfV8a6XZp .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gQsN9j8TfV8a6XZp #dependencyStart,#mermaid-svg-gQsN9j8TfV8a6XZp .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gQsN9j8TfV8a6XZp #dependencyStart,#mermaid-svg-gQsN9j8TfV8a6XZp .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gQsN9j8TfV8a6XZp #extensionStart,#mermaid-svg-gQsN9j8TfV8a6XZp .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gQsN9j8TfV8a6XZp #extensionEnd,#mermaid-svg-gQsN9j8TfV8a6XZp .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gQsN9j8TfV8a6XZp #aggregationStart,#mermaid-svg-gQsN9j8TfV8a6XZp .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gQsN9j8TfV8a6XZp #aggregationEnd,#mermaid-svg-gQsN9j8TfV8a6XZp .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-gQsN9j8TfV8a6XZp .edgeTerminals{font-size:11px;}#mermaid-svg-gQsN9j8TfV8a6XZp :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
User
-son : User
2 聚合关系
聚合关系是关联关系的一种,是强关联关系,是整体和部分之间的关系.如学校和学生的关系.
#mermaid-svg-bi2auZ8Ap90dBdNX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bi2auZ8Ap90dBdNX .error-icon{fill:#552222;}#mermaid-svg-bi2auZ8Ap90dBdNX .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-bi2auZ8Ap90dBdNX .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-bi2auZ8Ap90dBdNX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-bi2auZ8Ap90dBdNX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-bi2auZ8Ap90dBdNX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-bi2auZ8Ap90dBdNX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-bi2auZ8Ap90dBdNX .marker{fill:#333333;stroke:#333333;}#mermaid-svg-bi2auZ8Ap90dBdNX .marker.cross{stroke:#333333;}#mermaid-svg-bi2auZ8Ap90dBdNX svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-bi2auZ8Ap90dBdNX g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-bi2auZ8Ap90dBdNX g.classGroup text .title{font-weight:bolder;}#mermaid-svg-bi2auZ8Ap90dBdNX .nodeLabel,#mermaid-svg-bi2auZ8Ap90dBdNX .edgeLabel{color:#131300;}#mermaid-svg-bi2auZ8Ap90dBdNX .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-bi2auZ8Ap90dBdNX .label text{fill:#131300;}#mermaid-svg-bi2auZ8Ap90dBdNX .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-bi2auZ8Ap90dBdNX .classTitle{font-weight:bolder;}#mermaid-svg-bi2auZ8Ap90dBdNX .node rect,#mermaid-svg-bi2auZ8Ap90dBdNX .node circle,#mermaid-svg-bi2auZ8Ap90dBdNX .node ellipse,#mermaid-svg-bi2auZ8Ap90dBdNX .node polygon,#mermaid-svg-bi2auZ8Ap90dBdNX .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-bi2auZ8Ap90dBdNX .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-bi2auZ8Ap90dBdNX g.clickable{cursor:pointer;}#mermaid-svg-bi2auZ8Ap90dBdNX g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-bi2auZ8Ap90dBdNX g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-bi2auZ8Ap90dBdNX .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-bi2auZ8Ap90dBdNX .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-bi2auZ8Ap90dBdNX .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-bi2auZ8Ap90dBdNX .dashed-line{stroke-dasharray:3;}#mermaid-svg-bi2auZ8Ap90dBdNX #compositionStart,#mermaid-svg-bi2auZ8Ap90dBdNX .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-bi2auZ8Ap90dBdNX #compositionEnd,#mermaid-svg-bi2auZ8Ap90dBdNX .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-bi2auZ8Ap90dBdNX #dependencyStart,#mermaid-svg-bi2auZ8Ap90dBdNX .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-bi2auZ8Ap90dBdNX #dependencyStart,#mermaid-svg-bi2auZ8Ap90dBdNX .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-bi2auZ8Ap90dBdNX #extensionStart,#mermaid-svg-bi2auZ8Ap90dBdNX .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-bi2auZ8Ap90dBdNX #extensionEnd,#mermaid-svg-bi2auZ8Ap90dBdNX .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-bi2auZ8Ap90dBdNX #aggregationStart,#mermaid-svg-bi2auZ8Ap90dBdNX .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-bi2auZ8Ap90dBdNX #aggregationEnd,#mermaid-svg-bi2auZ8Ap90dBdNX .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-bi2auZ8Ap90dBdNX .edgeTerminals{font-size:11px;}#mermaid-svg-bi2auZ8Ap90dBdNX :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
School
-stu : List
Student
-name : String
3 组合关系
组合表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系.
如头和嘴巴的关系.
#mermaid-svg-dJdB6GSaWXcPAlry {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-dJdB6GSaWXcPAlry .error-icon{fill:#552222;}#mermaid-svg-dJdB6GSaWXcPAlry .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-dJdB6GSaWXcPAlry .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-dJdB6GSaWXcPAlry .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-dJdB6GSaWXcPAlry .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-dJdB6GSaWXcPAlry .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-dJdB6GSaWXcPAlry .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-dJdB6GSaWXcPAlry .marker{fill:#333333;stroke:#333333;}#mermaid-svg-dJdB6GSaWXcPAlry .marker.cross{stroke:#333333;}#mermaid-svg-dJdB6GSaWXcPAlry svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-dJdB6GSaWXcPAlry g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-dJdB6GSaWXcPAlry g.classGroup text .title{font-weight:bolder;}#mermaid-svg-dJdB6GSaWXcPAlry .nodeLabel,#mermaid-svg-dJdB6GSaWXcPAlry .edgeLabel{color:#131300;}#mermaid-svg-dJdB6GSaWXcPAlry .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-dJdB6GSaWXcPAlry .label text{fill:#131300;}#mermaid-svg-dJdB6GSaWXcPAlry .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-dJdB6GSaWXcPAlry .classTitle{font-weight:bolder;}#mermaid-svg-dJdB6GSaWXcPAlry .node rect,#mermaid-svg-dJdB6GSaWXcPAlry .node circle,#mermaid-svg-dJdB6GSaWXcPAlry .node ellipse,#mermaid-svg-dJdB6GSaWXcPAlry .node polygon,#mermaid-svg-dJdB6GSaWXcPAlry .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-dJdB6GSaWXcPAlry .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-dJdB6GSaWXcPAlry g.clickable{cursor:pointer;}#mermaid-svg-dJdB6GSaWXcPAlry g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-dJdB6GSaWXcPAlry g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-dJdB6GSaWXcPAlry .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-dJdB6GSaWXcPAlry .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-dJdB6GSaWXcPAlry .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-dJdB6GSaWXcPAlry .dashed-line{stroke-dasharray:3;}#mermaid-svg-dJdB6GSaWXcPAlry #compositionStart,#mermaid-svg-dJdB6GSaWXcPAlry .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-dJdB6GSaWXcPAlry #compositionEnd,#mermaid-svg-dJdB6GSaWXcPAlry .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-dJdB6GSaWXcPAlry #dependencyStart,#mermaid-svg-dJdB6GSaWXcPAlry .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-dJdB6GSaWXcPAlry #dependencyStart,#mermaid-svg-dJdB6GSaWXcPAlry .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-dJdB6GSaWXcPAlry #extensionStart,#mermaid-svg-dJdB6GSaWXcPAlry .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-dJdB6GSaWXcPAlry #extensionEnd,#mermaid-svg-dJdB6GSaWXcPAlry .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-dJdB6GSaWXcPAlry #aggregationStart,#mermaid-svg-dJdB6GSaWXcPAlry .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-dJdB6GSaWXcPAlry #aggregationEnd,#mermaid-svg-dJdB6GSaWXcPAlry .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-dJdB6GSaWXcPAlry .edgeTerminals{font-size:11px;}#mermaid-svg-dJdB6GSaWXcPAlry :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
Head
-mouth : Mouth
Mouth
+eat()
4 依赖关系
依赖关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联.
#mermaid-svg-kTGitAyBEqJBfGtF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kTGitAyBEqJBfGtF .error-icon{fill:#552222;}#mermaid-svg-kTGitAyBEqJBfGtF .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-kTGitAyBEqJBfGtF .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-kTGitAyBEqJBfGtF .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-kTGitAyBEqJBfGtF .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-kTGitAyBEqJBfGtF .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-kTGitAyBEqJBfGtF .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-kTGitAyBEqJBfGtF .marker{fill:#333333;stroke:#333333;}#mermaid-svg-kTGitAyBEqJBfGtF .marker.cross{stroke:#333333;}#mermaid-svg-kTGitAyBEqJBfGtF svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-kTGitAyBEqJBfGtF g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-kTGitAyBEqJBfGtF g.classGroup text .title{font-weight:bolder;}#mermaid-svg-kTGitAyBEqJBfGtF .nodeLabel,#mermaid-svg-kTGitAyBEqJBfGtF .edgeLabel{color:#131300;}#mermaid-svg-kTGitAyBEqJBfGtF .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-kTGitAyBEqJBfGtF .label text{fill:#131300;}#mermaid-svg-kTGitAyBEqJBfGtF .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-kTGitAyBEqJBfGtF .classTitle{font-weight:bolder;}#mermaid-svg-kTGitAyBEqJBfGtF .node rect,#mermaid-svg-kTGitAyBEqJBfGtF .node circle,#mermaid-svg-kTGitAyBEqJBfGtF .node ellipse,#mermaid-svg-kTGitAyBEqJBfGtF .node polygon,#mermaid-svg-kTGitAyBEqJBfGtF .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-kTGitAyBEqJBfGtF .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-kTGitAyBEqJBfGtF g.clickable{cursor:pointer;}#mermaid-svg-kTGitAyBEqJBfGtF g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-kTGitAyBEqJBfGtF g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-kTGitAyBEqJBfGtF .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-kTGitAyBEqJBfGtF .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-kTGitAyBEqJBfGtF .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-kTGitAyBEqJBfGtF .dashed-line{stroke-dasharray:3;}#mermaid-svg-kTGitAyBEqJBfGtF #compositionStart,#mermaid-svg-kTGitAyBEqJBfGtF .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kTGitAyBEqJBfGtF #compositionEnd,#mermaid-svg-kTGitAyBEqJBfGtF .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kTGitAyBEqJBfGtF #dependencyStart,#mermaid-svg-kTGitAyBEqJBfGtF .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kTGitAyBEqJBfGtF #dependencyStart,#mermaid-svg-kTGitAyBEqJBfGtF .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kTGitAyBEqJBfGtF #extensionStart,#mermaid-svg-kTGitAyBEqJBfGtF .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kTGitAyBEqJBfGtF #extensionEnd,#mermaid-svg-kTGitAyBEqJBfGtF .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kTGitAyBEqJBfGtF #aggregationStart,#mermaid-svg-kTGitAyBEqJBfGtF .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kTGitAyBEqJBfGtF #aggregationEnd,#mermaid-svg-kTGitAyBEqJBfGtF .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-kTGitAyBEqJBfGtF .edgeTerminals{font-size:11px;}#mermaid-svg-kTGitAyBEqJBfGtF :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
Driver
-driver(Car car)
Car
+move()
5 继承关系
继承关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系.
#mermaid-svg-Nd5Xf1O1pS0qcTk6 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .error-icon{fill:#552222;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .marker.cross{stroke:#333333;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 g.classGroup text .title{font-weight:bolder;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .nodeLabel,#mermaid-svg-Nd5Xf1O1pS0qcTk6 .edgeLabel{color:#131300;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .label text{fill:#131300;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .classTitle{font-weight:bolder;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .node rect,#mermaid-svg-Nd5Xf1O1pS0qcTk6 .node circle,#mermaid-svg-Nd5Xf1O1pS0qcTk6 .node ellipse,#mermaid-svg-Nd5Xf1O1pS0qcTk6 .node polygon,#mermaid-svg-Nd5Xf1O1pS0qcTk6 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 g.clickable{cursor:pointer;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .dashed-line{stroke-dasharray:3;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 #compositionStart,#mermaid-svg-Nd5Xf1O1pS0qcTk6 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 #compositionEnd,#mermaid-svg-Nd5Xf1O1pS0qcTk6 .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 #dependencyStart,#mermaid-svg-Nd5Xf1O1pS0qcTk6 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 #dependencyStart,#mermaid-svg-Nd5Xf1O1pS0qcTk6 .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 #extensionStart,#mermaid-svg-Nd5Xf1O1pS0qcTk6 .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 #extensionEnd,#mermaid-svg-Nd5Xf1O1pS0qcTk6 .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 #aggregationStart,#mermaid-svg-Nd5Xf1O1pS0qcTk6 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 #aggregationEnd,#mermaid-svg-Nd5Xf1O1pS0qcTk6 .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 .edgeTerminals{font-size:11px;}#mermaid-svg-Nd5Xf1O1pS0qcTk6 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
Person
-name : String
-speak()
Student
-no : String
+study()
6 实现关系
实现关系是接口与实现类之间的关系。类实现了接口,类中的操作实现了接口中所声明的所有的抽象操作.
#mermaid-svg-NEdNQBY4GYoECbtb {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-NEdNQBY4GYoECbtb .error-icon{fill:#552222;}#mermaid-svg-NEdNQBY4GYoECbtb .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-NEdNQBY4GYoECbtb .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-NEdNQBY4GYoECbtb .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-NEdNQBY4GYoECbtb .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-NEdNQBY4GYoECbtb .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-NEdNQBY4GYoECbtb .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-NEdNQBY4GYoECbtb .marker{fill:#333333;stroke:#333333;}#mermaid-svg-NEdNQBY4GYoECbtb .marker.cross{stroke:#333333;}#mermaid-svg-NEdNQBY4GYoECbtb svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-NEdNQBY4GYoECbtb g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-NEdNQBY4GYoECbtb g.classGroup text .title{font-weight:bolder;}#mermaid-svg-NEdNQBY4GYoECbtb .nodeLabel,#mermaid-svg-NEdNQBY4GYoECbtb .edgeLabel{color:#131300;}#mermaid-svg-NEdNQBY4GYoECbtb .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-NEdNQBY4GYoECbtb .label text{fill:#131300;}#mermaid-svg-NEdNQBY4GYoECbtb .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-NEdNQBY4GYoECbtb .classTitle{font-weight:bolder;}#mermaid-svg-NEdNQBY4GYoECbtb .node rect,#mermaid-svg-NEdNQBY4GYoECbtb .node circle,#mermaid-svg-NEdNQBY4GYoECbtb .node ellipse,#mermaid-svg-NEdNQBY4GYoECbtb .node polygon,#mermaid-svg-NEdNQBY4GYoECbtb .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-NEdNQBY4GYoECbtb .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-NEdNQBY4GYoECbtb g.clickable{cursor:pointer;}#mermaid-svg-NEdNQBY4GYoECbtb g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-NEdNQBY4GYoECbtb g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-NEdNQBY4GYoECbtb .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-NEdNQBY4GYoECbtb .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-NEdNQBY4GYoECbtb .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-NEdNQBY4GYoECbtb .dashed-line{stroke-dasharray:3;}#mermaid-svg-NEdNQBY4GYoECbtb #compositionStart,#mermaid-svg-NEdNQBY4GYoECbtb .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-NEdNQBY4GYoECbtb #compositionEnd,#mermaid-svg-NEdNQBY4GYoECbtb .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-NEdNQBY4GYoECbtb #dependencyStart,#mermaid-svg-NEdNQBY4GYoECbtb .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-NEdNQBY4GYoECbtb #dependencyStart,#mermaid-svg-NEdNQBY4GYoECbtb .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-NEdNQBY4GYoECbtb #extensionStart,#mermaid-svg-NEdNQBY4GYoECbtb .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-NEdNQBY4GYoECbtb #extensionEnd,#mermaid-svg-NEdNQBY4GYoECbtb .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-NEdNQBY4GYoECbtb #aggregationStart,#mermaid-svg-NEdNQBY4GYoECbtb .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-NEdNQBY4GYoECbtb #aggregationEnd,#mermaid-svg-NEdNQBY4GYoECbtb .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-NEdNQBY4GYoECbtb .edgeTerminals{font-size:11px;}#mermaid-svg-NEdNQBY4GYoECbtb :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
Vehicle
+void speak()
Car
+void speak()
关于Java中UML图的说明相关推荐
- java测试类要画UML图吗,如何从Java代码生成UML图(尤其是序列图)?
如何从Java代码生成UML图(尤其是序列图)? 如何从现有Java代码生成UML图(尤其是序列图)? 14个解决方案 249 votes ObjectAid UML Explorer 是我用过的. ...
- 如何从Java代码生成UML图(尤其是序列图)?
本文翻译自:How to generate UML diagrams (especially sequence diagrams) from Java code? 如何从现有Java代码生成UML图( ...
- 移动架构 (一) 详解架构设计中UML图的使用
距离上一个 "性能优化系列" 已经快一个月没有发布文章了,最近公司真的是太忙了,甚是想念掘友们啊.最近把学习架构方面的知识记录下来,供自己和掘友们一起学习. 注意: 文章中 UML ...
- 基于JDK 1.8 的 Java 容器UML图
2019独角兽企业重金招聘Python工程师标准>>> 这张图主要描述Java中容器框架,基于JDK 1.8 的. 网上现有的相关图都是基于老版本的JDK,而且也比较简陋. 图中省略 ...
- 【Java】Java绘制UML图
1.继承关系(Inheritance) 继承指的是一个类(子类.子接口)继承另外的一个类(父类.父接口)的功能,通过关键字 extends 明确标识 UML图 继承用一条带空心三角箭头的实线表示,从子 ...
- Java代码序列图生成,如何从Java代码生成UML图(特别是序列图)?
编辑: 如果你是个设计师 Papyrus 是您的最佳选择,它非常先进,而且功能齐全,但是如果您只想绘制一些UML图并方便地安装,那么 ObjectAid 很酷,不需要任何插件,我只是在EclipseJ ...
- IDEA制作java项目UML图
手把手教学 步骤一 1.0 鼠标置于项目文件夹上 1.1 单击鼠标右键 步骤二 2.0移动鼠标至Diagrams选项 2.1水平移动鼠标打开子菜单 2.2单击子菜单第一个选项 2.3单击弹窗第一个选项 ...
- UML中依赖,关联,聚合,组合的含义(结合UML图和实战代码详解)
UML中各种关系的含义 1. 什么是UML图? 2. UML图中的各种关系含义 2.1 依赖 2.1.1 简单理解及画法 2.1.2 那么在UML中的依赖是怎样的呢? 2.1.3 实战中UML图的画法 ...
- SVG与UML图详解
一.SVG 可缩放矢量图形(SVG)是W3C的推荐标准,它使用XML描述两维图形结构和图形应用,可以在Web浏览器.手持设备或移动电话等多种上显示.目前稳定版本为1.1版,最新的版本是以草案形式存在的 ...
最新文章
- 添加Page_Init事件
- 获得WebApi用Post方法获得新增数据的信息
- Java 技术篇-利用ClipboardOwner实现实时监听剪切板功能实例演示
- python 学堂在线_最新网课答案2020学堂在线Python 交互式程序设计导论
- python 获取运行文件的路径
- 使用PADDING-TOP:(PERCENTAGE)实现响应式背景图片
- 多重加载Bean方式
- 关于Boost的Asio的信号灯超时时间已到错误
- 迅雷下载链接转为普通链接
- 简易cad导出pdf程序源码
- 2022.3.14-3.20 AI行业周刊(第89期):商业计划书
- 强智教务系统模拟登陆经验【附源码】
- Dubbo扩展点注解之@Adaptive
- 在HMM中,如果已知观察序列和产生观察序列的状态序列,那么可用以下哪种方法直接进行参数估计
- SpringCloud Alibaba实战第九课 分布式事务理论、DevOps运维
- VS+OpenCV+VC超详细的配置教程
- STM32F1单片机零基础学习(1)
- iOS 8 状态栏保持黑底白字 亲测有效
- 联盟链开发 区块链联盟链开发
- mPEG-Tert 甲氧基PEG叔丁酯
热门文章
- 【读书笔记->统计学】11-02 总体和样本的估计-总体比例、样本比例、根据总体预测样本比例概念简介
- vimperator
- mysql设置最大连接数
- Apache Benchmark测试结果数据解析
- EasyUI datagrid列名包含特殊字符(如:%等),会导致表格错位
- medoo支持的php版本,Medoo入门:安装和配置-Medoo使用指南
- 十分钟明白什么是容器技术
- C语言实战小项目(传统卡牌游戏)
- Java求和元素_实现一个List集合中的某个元素的求和
- 模拟射击训练系统需要准备多大的场地