首页 > 生活

UML 类图

更新时间:2025-05-23 02:22:31 阅读: 评论:0

一、 UML 类图(Class Diagram)class Circle {private: double radius; Point center;public: setRadius(double随时随地英语 radius); setCenter(Point center); double getArea(); double getCircumfrence();};

上述类Circle对应的UML类图如下所示:

蔓越橘类的访问范围可用下面的标志表示,

“+” Public“-” Private“#” Protected

不同参数的“方向”,

“in” The parameter is an input parameter.“Inout” The parameter is capable of both input and output.“Out” The parameter is an output parameter.

类中不同类型的成员,

1) Static members are represented as underlined.静态函数带下划线表示2) Pure virtual functions are represented as italics.虚函数用斜体表示

在一个复杂的软件系统中,每个类之间的关系可以有以下几种的情况:

Association (knows a)Dependency (uses a)Composition (has a)Aggregation (has a)Inheritance (is a)Class template“0..1” No 田林三中instances, or one instance (optional, may)“1” Exactly one instance“0..* or *” Zero or more instances“1..*” One orsoaz more instances (at least one)二、类之间的关系1. Association

X和Y有关系,在X中有Y的对象的引用或者指针,

Class X { X(Y *y) : y_ptr(y) {} voi高达mgd SetY(Y *y) { y_ptr = y; } void f()关于鲨鱼的电影 { y_ptr->Foo();} ---- Y *y_ptr; // pointer};

Association用实线和箭头表示,

2. Dependency

X依赖Y,这种依赖是,Y的对象作为函数参数或者局部变量来使用。

clas秸秆是什么s X{ ... vouicid f1(Y y) {…; y.Foo(); }民科吧 void f2(Y *y) {…; y->Fo论文研究方法有哪些o(); } void f3(Y &y) {…; y.Foo(); } void f4() { Y y; y.Foo(); …} void f5() {…; Y::StaticFoo(); } ...};

Dependency用虚线和箭头表示,

3. Aggregation

在类Window中,有个itsShapes的vector,但是itsShapes对象的生命周期不受Window合资企业的对象的影响,即当Window对应安徽毛峰的对象析构后,itsShapes还存在,他们之间没有很强的生命周期的关联。Aggregation和Association很类似,我理解Aggregation主要是窗口+形状这层关系,在实际意义上有了一层约束。

class Window{ public: //... private: vector itsShapes;};

Aggregation用空心菱形和箭头表示,

上面的例子有些不直观,再举个例子,小汽车有轮胎,但是轮胎这个对象可以不局限在某一个实际的汽车,因为它还可以让别的小汽车使用,小汽车决定不了轮胎的生命周期。

4. Com化工搜索position

Composition 是生命周期“强化版”的Aggregation,举个例子就明白了,我们画圆,圆心和圆的生命关系就是息息相关的,没有了圆,这个圆心也就不存在了。

class Circle{private: ... Point center;//Circle析构后,center也会析构....};

Composition用实心菱形和箭头表示,

下面的例子更好的说明了Composition的用法,

class X { ... Y a; // 1; Composition Y b[iwatch10]; // 0..10; Composition}; class X { X(养鬼吃人5) { a = new Y[10]; }//息息相关 ~X(){ delete [] a; }//息息相关 ... Y 葫芦工艺品*a; // 0..10; Compositio成都幼儿园n}; class X { ... vector a;};5. Inheritance

继女神转生承是面向对象的最基本的一个特性,不需要过多介绍,使用实线和空心箭头表示。

上面的X``Y类为基础的类,下面的Shape是抽象类,其中的函数Draw()和Erase()都是virtual的,所以都是用斜体表示的。

6. 泛型类

顾名思义,如下述X为泛型类,其UML历史小说推荐图如下促排卵所示,

template<class T>class X{...}; X<Y> a;

本文发布于:2023-06-04 08:43:46,感谢您对本站的认可!

本文链接:http://www.ranqi119.com/ge/85/215057.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:UML   类图
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26|友情:优美诗词|电脑我帮您|扬州装修|369文学|学编程|软件玩家|水木编程|编程频道