UML类图

1.类图基础属性
类图的表示

-表示private
#表示protected
~表示default,也就是包权限
_下划线表示static
斜体表示抽象

2.类与类之间关系
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
类与类之间的关系
2.1泛化
介绍:
泛化(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系

(1)继承
介绍:
继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。
表示方法:
继承使用空心三角形+实线表示。
示例:
鸟类继承抽象类动物
继承关系
(2)实现
介绍:
实现表示一个class类实现interface接口(可以是多个)的功能。
表示方法:
1)矩形表示法
使用空心三角形+虚线表示
比如:大雁需要飞行,就要实现飞()接口
矩形表示法
2)棒棒糖表示法
使用实线表示
棒棒糖表示法
2.2依赖
介绍:
对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
表示方法:
依赖关系用虚线箭头表示。
示例:
动物依赖氧气和水。调用新陈代谢方法需要氧气类与水类的实例作为参数
依赖关系
2.3关联
介绍:
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。
表示方法
关联关系用实线箭头表示。
示例:
企鹅需要‘知道’气候的变化,需要‘了解’气候规律。当一个类‘知道’另一个类时,可以用关联。
关联关系
2.4聚合
介绍:
表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期。
表示方法:
聚合关系用空心的菱形+实线箭头表示。
示例:
每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。当大雁死去后大雁群并不会消失,两个对象生命周期不同。
聚合关系
2.5组合
介绍:
组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。
表示方法:
组合关系用实心的菱形+实线箭头表示,还可以使用连线两端的数字表示某一端有几个实例。
示例:
鸟和翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。
组合关系

### UML的用法及示例 UML是一种用于描述系统静态结构的建模工具,它通过形化的方式展示了、接口、协作和它们之间的关系[^1]。以下是关于UML的详细说明以及使用教程。 #### 1. 的基本元素 在UML中,主要包含以下基本元素: - **(Class)**:表示系统中的实体,通常包括名、属性和方法。的表示形式为一个矩形框,分为三部分:名、属性和操作。 - **接口(Interface)**:定义了一组操作,但不提供具体实现。接口通常用带<<interface>>标记的矩形表示。 - **关联(Association)**:表示两个之间的关系,可以是单向或双向。 - **聚合(Aggregation)**:一种特殊的关联,表示“整体-部分”关系,但部分可以独立于整体存在。 - **组合(Composition)**:也是一种“整体-部分”关系,但部分不能独立于整体存在。 - **继承(Inheritance)**:表示子从父继承属性和方法的关系。 - **实现(Realization)**:表示实现了某个接口。 #### 2. 的绘制规则 绘制UML时需遵循以下规则: - 每个用矩形框表示,其中包含名、属性和方法。 - 属性和方法的可见性用符号表示:`+` 表示公共(public),`-` 表示私有(private),`#` 表示受保护(protected)。 - 关系用不同型的线表示,例如虚线表示依赖,实线表示关联,带空心菱形的线表示聚合,带实心菱形的线表示组合。 #### 3. 示例代码与 以下是一个简单的UML示例及其对应的代码实现。 ##### 示例 ```plaintext +-------------------+ | Person | +-------------------+ | - name: String | | - age: int | +-------------------+ | + getName(): void | | + setAge(int): void | +-------------------+ ``` ##### 对应代码实现 ```java public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } ``` #### 4. 工具推荐 为了更方便地绘制UML,可以使用以下工具: - **StarUML**:功能强大且支持多种UML的绘制。 - **Visual Paradigm**:提供免费社区版,适合初学者使用。 - **Draw.io**:在线工具,简单易用,适合快速绘制。 #### 5. 注意事项 在设计时,需注意以下几点: - 确保清晰简洁,避免过多的细节导致混乱。 - 正确表示之间的关系,确保关系型选择准确。 - 在实际开发中,应与代码保持一致,便于后续维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值