标签:表示 标记 mil 关联关系 inf http 方向 组合 height
Class Diagram:用于表示类、接口、实例等之间相互的静态关系
虽然名字叫类图,但是类图中并不是只有类
定义子类时需要通过extends关键字指定父类
子类一定是知道父类定义的,但是父类并不知道子类的定义
只有知道对方信息时才能指向对方
所以箭头的方向是从子类指向父类
空心三角箭头:继承或实现
实线-继承
虚线-实现
实线表示关联关系
表示一个类对象和另一个类对象有关联
通常是一个类中有另一个类对象作为属性
虚线表示依赖关系
表示一种使用关系,一个类需要借助另一个类来实现功能
一般是一个类使用另一个类作为参数使用,或作为返回值
菱形就是一个盛东西的器皿(例如盘子)
聚合:代表空器皿里面可以放很多东西,聚在一起(箭头方向所指的类)
整体和局部的关系,两者有着独立的生命周期,是has a 的关系
弱关系
消极的词:弱-空
组合:代表满器皿里面已经有实体结构的存在,生死与共
整体与局部的关系,和聚合的关系相比,关系更加强烈,两者有着相同的生命周期
Contains-a的关系
强关系
积极的词:强-满
假设有A类和B类,数字标记在A类侧
0..1 0个或一个实例
0..* 0个或多个实例
1..1 1个实例
1 只能有一个实例
1..* 至少有一个实例
GeelyClass应该是斜体的因为study是抽象方法
斜体则表示抽象,如果是接口则有尖括号
+ public
- private
#protected
~(或者什么都不加) 默认的包权限
———横线代表static属性
(1)动物依赖于氧气和水,氧气和水作为动物方法的参数,是虚线表示的,箭头方向是指向被依赖的方向
(2)动物是一个父类,鸟呢是一种动物,鸟 is a 动物 ,空心箭头表示泛化关系或者继承关系,而这里表示继承。(鸟继承自动物,而动物是鸟的泛化,继承关系是泛化关系的反关系,也就是说子类是从父类继承的,而父类则是子类的泛化)
(3)一个鸟有两个翅膀这里是组合关系(实心菱形加箭头,组合关系具有相同的生命周期,比如鸟挂了,那么它的翅膀也就没有生命力了)
(4)鸟作为动物的子类,但是又作为大雁、鸭和企鹅的父类。企鹅、大雁、鸭都是鸟,但是他们仨也都是动物,所以他们三个使用继承关系继承鸟
(5)企鹅非常注重气候,如果气候太热的话它也就活不下去了,关联关系一般是一个类中有另外一个类的对象作为属性,企鹅有一个属性就是气候(关联关系使用实线的箭头,企鹅关联哪个类就指向哪个类)
(6)大雁群是N个大雁组成的(聚合关系是空心菱形和箭头,是整体和局部的关系,两者拥有独立的生命周期,是has a 的关系,比如大雁群有很多大雁其中有一只大雁生病挂了,但是大雁群还是存在,但是对于挂了的那只大雁生命周期已经结束了,所以他们有着独立的生命周期)
(7)大雁是可以飞的,所以它实现了飞翔接口,实现关系
(8)鸭作为鸟的子类,同时又是唐老鸭的父类,唐老鸭继承鸭之后呢又多了一个自己的方法,唐老鸭又实现了一个接口那就是讲人话。(这里是用的棒棒糖表示法)
组合聚合菱形记忆技巧:菱形就是一个盘子,是一个器皿可以盛东西,菱形在拥有者这一方,一个鸟拥有两个翅膀,一个大雁群有多只大雁,所以菱形在鸟和大雁群这一方。
标签:表示 标记 mil 关联关系 inf http 方向 组合 height
原文地址:https://www.cnblogs.com/pandayo/p/12508141.html