UML【类图包图对象图】

2024-03-01 02:20
文章标签 对象 uml 类图 包图

本文主要是介绍UML【类图包图对象图】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.类和类图

1.类是面向对象程序设计实现信息封装的基础。类是一种用户定义类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。

2.类图:用来描述系统的静态部分。

3.类图的关系

(1).关联

   (1.1)普通关联:两个类有结构关系,用直线表示。

        应用于关联的修饰:(1).名称:用以描述该关系的性质。

                                       (2).角色:当一个类处于关联的某一端时,该类就在这个关系中扮演了一个特定的角                           色;角色是关联中靠近它的一端的类对另外端的类呈现的职责。

 

(3).多重性:关联角色的多重性是说明一个关联的实例中有多少个相互链接的对象。

 

两个类之间可以有多种关联;一个类可以和多个类关联。

   (1.2)聚合:描述整体和部分关系,可独立存在,用空心的菱形表示。

   (1.3)组合:描述整体和部分的关系,不能独立的存在,用实心的菱形表示。

(2).依赖:依赖是一种使用关系,他说明一个事物规格说明的变化可能影响到使用它的另一个事物。但反之未必。用虚线的箭头表示,箭头表示被依赖的一方。

 (3).泛化:继承有父类和子类。

             单重继承:有且只有一个父类。

             多重继承:可以有很多个父类。

 

(4).实现:实现是类元之间的语义关系,在该关系中一个类元描述了另一个类元保证实现的契约。

 

4.类图的元素

类,接口,协作,关系

(一)类:包括名称,属性和操作。

类属性的语法为:

[可见性] 属性名 [:类型] [=初始值] [{属性字符串}]

可见性:公有(Public)“+”、私有(Private)“-”、受保护(Protected)“#”

 

类操作的语法为:

[可见性] 操作名 [(参数表)] [:返回类型] [{属性字符串}]

可见性:公有(Public)“+”、私有(Private)“-”、受保护(Protected)“#”、包内公有(Package)“~”

(二)接口:在没有给出对象的实现和状态的情况下对对象行为的描述。一个类可以实现一个或多个接口。

使用两层矩形框表示,与类图的区别主要是顶端有<>显示

 

或者用一个空心圆表示


例:下图中,user和GenealUser,Oprerator,Administrator是一种继承关系,表示一般与特殊的关系,用带空心箭头的实线表示,箭头指向父类。

 

 

二.包图

 

1.包的作用:逻辑上把一个复杂的图模块化;组织源代码。

2.包中的元素:类,接口,构件,用例,其他包等。若包被撤销,则其中的元素也被撤销了。

3.包与包之间的关系:泛化;细化;依赖(常用,如果两个包中的任意两个类之间有依赖关系,则这两个包之间有依赖关系。)

4.包的常见问题:(1).一定要避免循环依赖产生。

                           (2).测试时可以以包为测试单位。

                           (3).应该尽量把概念和语义上相接近的元素包含在同一个包中。

                           (4).对于一个包,找出哪些包内的元素是可以在包外访问的,把这些元素标记为公共的,其        他所有元素都标记为受保护的或者私有的。

 

三.对象图

1.对象图描述一个系统在某个具体时刻的静态结构。而类图描述所有可能的情况。在图形上,对象图是顶点和弧的集合。对象图表示冻结了的系统运动的某一瞬间。

2.对象图的构成:对象,连接,包。课包含注解和约束。

 

 

这篇关于UML【类图包图对象图】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/760875

相关文章

Java第二阶段---09类和对象---第三节 构造方法

第三节 构造方法 1.概念 构造方法是一种特殊的方法,主要用于创建对象以及完成对象的属性初始化操作。构造方法不能被对象调用。 2.语法 //[]中内容可有可无 访问修饰符 类名([参数列表]){ } 3.示例 public class Car {     //车特征(属性)     public String name;//车名   可以直接拿来用 说明它有初始值     pu

HTML5自定义属性对象Dataset

原文转自HTML5自定义属性对象Dataset简介 一、html5 自定义属性介绍 之前翻译的“你必须知道的28个HTML5特征、窍门和技术”一文中对于HTML5中自定义合法属性data-已经做过些介绍,就是在HTML5中我们可以使用data-前缀设置我们需要的自定义属性,来进行一些数据的存放,例如我们要在一个文字按钮上存放相对应的id: <a href="javascript:" d

一步一步将PlantUML类图导出为自定义格式的XMI文件

一步一步将PlantUML类图导出为自定义格式的XMI文件 说明: 首次发表日期:2024-09-08PlantUML官网: https://plantuml.com/zh/PlantUML命令行文档: https://plantuml.com/zh/command-line#6a26f548831e6a8cPlantUML XMI文档: https://plantuml.com/zh/xmi

PHP7扩展开发之对象方式使用lib库

前言 上一篇文章,我们使用的是函数方式调用lib库。这篇文章我们将使用对象的方式调用lib库。调用代码如下: <?php $hello = new hello(); $result = $hello->get(); var_dump($result); ?> 我们将在扩展中实现hello类。hello类中将依赖lib库。 代码 基础代码 这个扩展,我们将在say扩展上增加相关代码。sa

UML- 统一建模语言(Unified Modeling Language)创建项目的序列图及类图

陈科肇 ============= 1.主要模型 在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。 动态模型:展现系统的内部行为。 包括序列图、活动图、状态图。 因为要创建个人空间项目并不是一个很大的项目,我这里只须关注两种图的创建就可以了,而在开始创建UML图

hibernate修改数据库已有的对象【简化操作】

陈科肇 直接上代码: /*** 更新新的数据并并未修改旧的数据* @param oldEntity 数据库存在的实体* @param newEntity 更改后的实体* @throws IllegalAccessException * @throws IllegalArgumentException */public void updateNew(T oldEntity,T newEntity

类和对象的定义和调用演示(C++)

我习惯把类的定义放在头文件中 Student.h #define _CRT_SECURE_NO_WARNINGS#include <string>using namespace std;class student{public:char m_name[25];int m_age;int m_score;char* get_name(){return m_name;}int set_name

react笔记 8-19 事件对象、获取dom元素、双向绑定

1、事件对象event 通过事件的event对象获取它的dom元素 run=(event)=>{event.target.style="background:yellowgreen" //event的父级为他本身event.target.getAttribute("aid") //这样便获取到了它的自定义属性aid}render() {return (<div><h2>{

Python---文件IO流及对象序列化

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 前文模块中提到加密模块,本文将终点介绍加密模块和文件流。 一、文件流和IO流概述         在Python中,IO流是用于输入和输出数据的通道。它可以用于读取输入数据或将数据写入输出目标。IO流可以是标准输入/输出流(stdin和stdout),也可以是文件流,网络流等。

第三章 UML类图简介(设计模式笔记)

第三章 UML类图简介 3.1类 3.2接口 名字层必须有<> 3.3 泛化(继承)关系 箭头终点端指向父类(空心三角形) 3.4 关联(组合1)关系 B类是A类的成员变量 ,称A关联B。 箭头终点端指向B 3.5 依赖(组合2)关系 B类是A类的某个方法的参数 ,称A依赖B。 箭头终点端指向B(虚线) 3.6 实现关系 箭头终点端指向接口(虚线,空心