类与类之间的几种关系

1 篇文章 1 订阅
订阅专栏

0.相关问题

1、 类图是针对什么进行建模?

系统结构建模

2、 UML类图中如何表示一个类?

矩形框

3、 类之间的关系有哪几种?

关联(简单关联(Association)、聚合(Aggregation)、组合(Composition))、实现(Implementation)、依赖(Dependence)、泛化(Generalization)。

4、 类之间的关联属性有哪些?

方向/导航、关联名、多重性、关联角色、关联类型

1.组合(Composition)

组合关系(Composition):也是整体与部分的关系,但是整体与部分不可以分开.

  • 组合关系(Composition)也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在,部分对象与整体对象之 间具有同生共死的关系。
  • 在组合关系中,成员类是整体类的一部分,而且整体类可以控制成员类的生命周期,即成员类的存在依赖于整体类。在UML中,组合关系用带实心菱形的直线表示。

public class Head  
{  
    private Mouth mouth;  
    public Head()  
    {  
    mouth = new Mouth();  
    }  
    ……  
}  
  
public class Mouth  
{  
    ……  
}  

2.聚合(Aggregation)

聚合关系(Aggregation):表示的是整体和部分的关系,整体与部分 可以分开.

  • 聚合关系(Aggregation) 表示一个整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构,从而找出一些成员类,该整体类和成员类之间就形成了聚合 关系。
  • 在聚合关系中,成员类是整体类的一部分,即成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。在UML中,聚合关系用带空心菱形的直线表示。

public class Car  
{  
    private Engine engine;  
    public Car(Engine engine)  
   {  
        this.engine = engine;  
    }  
      
    public void setEngine(Engine engine)  
    {  
        this.engine = engine;  
    }  
    ……  
}  
public class Engine  
{  
    ……  
} 

3.关联(Association)

关联关系(Association):类之间的联系,如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单,再如篮球队员与球队之间的关联(下图所示)。

其中,关联两边的”employee”和“employer”标示了两者之间的关系,而数字表示两者的关系的限制,是关联两者之间的多重性。通常有“*”(表示所有,不限),“1”(表示有且仅有一个),“0…”(表示0个或者多个),“0,1”(表示0个或者一个),“n…m”(表示n到m个都可以),“m…*”(表示至少m个)。

  • 关联关系(Association) 是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系。

  • 在UML类图中,用实线连接有关联的对象所对应的类,在使用Java、C#和C++等编程语言实现关联关系时,通常将一个类的对象作为另一个类的属性。

  • 在使用类图表示关联关系时可以在关联线上标注角色名。

3.1双向关联

默认情况下,关联是双向的。

public class Customer  
{  
    private Product[] products;  
    ……  
}  
public class Product  
{  
    private Customer customer;  
    ……  
}
3.2单向关联

类的关联关系也可以是单向的,单向关联用带箭头的实线表示.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iQ4GbNw7-1601196159620)(E:\dev\school\uml\md\class\assets\20191116230203.png)]

public class Customer  
{  
    private Address address;  
    ……  
}  
  
public class Address  
{  
    ……  
} 
3.3自关联

在系统中可能会存在一些类的属性对象类型为该类本身,这种特殊的关联关系称为自关联。

public class Node  
{  
    private Node subNode;  
    ……  
}  
3.4重数性关联

重数性关联关系又称为多重性关联关系(Multiplicity),表示一个类的对象与另一个类的对象连接的个数。在UML中多重性关系可以直接在关联直线上增加一个数字表示与之对应的另一个类的对象的个数。

表示方式多重性说明
1…1表示另一个类的一个对象只与一个该类对象有关系
0…*表示另一个类的一个对象与零个或多个该类对象有关系
1…*表示另一个类的一个对象与一个或多个该类对象有关系
0…1表示另一个类的一个对象没有或只与一个该类对象有关系
m…n表示另一个类的一个对象与最少m、最多n个该类对象有关系 (m<=n)

4.泛化关系(Generalization)

泛化关系(Generalization):泛化简单的说就是继承关系。

图中表示:用带空心三角形的直线来表示,子类指向父类

5.实现关系(Implementation)

实现关系(Implementation):简单的说就是类实线接口。

图中表示:类与接口之间的实现关系用带空心三角形的虚线来表示,类指向接口。

6.依赖关系(Dependence)

依赖关系(Dependence):假设A事务的变化引起了B事务的变化,则说名B事务依赖于A事务。

图中表示:依赖关系用带箭头的虚线表示,依赖的一方指向被依赖的一方

代码实线(驾驶员依赖于车):

public class Driver  
{  
    public void drive(Car car)  
    {  
        car.move();  
    }  
    ……  
}  
public class Car  
{  
    public void move()  
    {  
        ……  
    }  
    ……  
}  

依赖关系的三种情况:

1、A类是B类中的(某种方法的)局部变量;

2、A类是B类方法当中的一个参数;

3、A类向B类发送消息,从而影响B类发生变化;

UML图中之间关系:依赖,泛化,关联,聚合,组合,实现
weixin_30517001的博客
06-07 1581
图 1) (Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。 2) 在系统中,每个具有一定的职责,职责指的是所担任的任务,即要完成什么样的功能,要承担什么样的义务。一个可以有多种职责,设计得好的一般只有一种职责,在定义的时候,将的职责分解成为的属性和操作(即方法)。 3) 的属性即的数据职责,的...
简单谈谈Java之间关系
09-02
之间关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就简单给大家介绍一下。
架构师修养 --UML
绿浪的成长
10-12 317
之间由弱到强关系是: 没关系 > 依赖 > 关联 > 聚合 > 组合。 依赖关系 A使用到B,这种使用关系是偶然的、临时的、非常弱的,但是B的变化会影响到A。 在代码层面,B作为参数在A的方法中使用。 场景1 ![依赖关系](https://img-blog.csdnimg.cn/20201012105040126.png#pic_center) 关联关系与接口之间的强依赖关系,这个依赖关系是长期的,平等的,可以单向、双向。
之间关系
11-04
java的阐述,简单的讲述之间关系
关系之关联
最新发布
Best_jiangX的博客
03-18 725
主要讲解之间关联关系!!!关联是什么?不知道?进来看看!
学习:之间关系
weixin_34150830的博客
06-22 106
之间关系 1. 种: Generalization(泛化),Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(合成关系)。 2.  其中Aggregation(聚合关系)、Composition(合成关系)属于Association(关联关系),是特殊的Association关联关系。 3.  Genera...
UML图设计
qq_34462436的博客
09-09 1368
图设计 <<abstract>>:表示SingleCore、MultiCore和CoreFactory均定义为抽象。(纯虚函数的被称为抽象(abstractclass),而只含有虚函数的(class)不能被称为抽象(abstractclass)。)。 指的是一个(称为子、子接口)继承另外的一个(称为父、父接口)的功能,并可以增加它自己的新功能的...
发布管理与配置管理之间关系
02-27
之前的一种思想是这样的:所有东西以配置管理为基础,并实现与配置管理之间的交互。(鉴于项目的特殊性,只能写出基本思想)其一:配置管理以SVN为配置管理库,制定配置管理计划等等。其二:变更管理大致可以分为需求...
变量之间关系几种.doc
12-17
变量之间关系几种.doc
几种构件模型的比较分析
02-04
北京火龙果软件工程技术中心软件构件模型是关于开发可重用软件构件和构件之间相互通信的一组标准的描述。通过重用已有的软构件,使用构件对象模型的软件开发者可以像搭积木一样快速构造应用程序。这样不仅可以节省...
煤炭发热量几种表示方式之间关系与意义
05-14
简单介绍了发热量的定义,结合热力学关于热和功的一些规定,阐述了弹筒发热量、高位发热量、低位发热量等几种发热量在数值上的关系及在实际生产中的意义。
几种蔬菜硝酸盐与营养品质的关系 (2002年)
05-17
为了解叶蔬菜硝酸盐与营养品质的关系,对冬白菜、生菜、芹菜、莴笋(叶片) 4种叶蔬菜硝酸盐含量和维生素C、氨基酸、可溶性糖含量进行了分析。结果显示,硝酸盐含量以芹菜>生菜>莴笋(叶片) >冬白菜;维生素C含量是冬...
企业架构演进路径与几种主流框架比较
03-02
为了更好地理解不同架构框架之间关系、共同点与差别,我们首先看一看企业架构框架的演进过程来,企业架构框架演进行过程,如下图。从上图,可知企业架构的演进的两条主线:一条是以Zachman框架为基础,开发出的...
景及情之间几种关系.doc
10-03
景及情之间几种关系.doc
几种分析电路的常用方法
01-13
常用分析电路的方法有以下几种:  1、直流等效电路分析法  在分析电路原理时,要搞清楚电路中的直流通路和交流通路。直流通路是指在没有输入信号时,各半导体三极管、集成电路的静态偏置,也就是它们的静态工作...
之间关系有哪几种
06-13
在面向对象的编程中,之间关系有以下几种: 1. 继承(Inheritance)关系:表示一个(子)继承另一个(父)的属性和方法,并可以添加自己的属性和方法。 2. 关联(Association)关系:表示两个之间有联系,但不依赖彼此,可以独立存在。 3. 聚合(Aggregation)关系:表示两个之间是一种“整体-部分”的关系,整体可以包含多个部分,部分可以属于多个整体。 4. 组合(Composition)关系:表示两个之间是一种“整体-部分”的关系,但整体和部分之间具有强依赖关系,整体不存在了,部分也将不存在。 5. 依赖(Dependency)关系:表示一个依赖另一个的某些功能,但不是整体-部分的关系。 其中,继承关系是最为重要的一种关系,它可以使得代码的复用性和扩展性大大提高,同时也是面向对象编程的核心概念之一。其他关系则用于描述之间的不同的关联方式,有助于程序员更好地理解系统中的对象和它们之间关系,进而设计出更加合理的系统架构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

分类专栏

  • Git 6篇
  • SpringCloud 13篇
  • Nginx 5篇
  • Docker 6篇
  • SpringBoot 5篇
  • 工具
  • Python 1篇
  • 局域网 2篇
  • Redis 9篇
  • UML 1篇
  • 数据库 9篇
  • SpringSecurity 1篇
  • Oauth2 1篇
  • 中间件 1篇
  • 浏览器
  • 跨域 1篇
  • Java 26篇
  • 蓝桥杯 6篇
  • MySQL 4篇
  • 数据结构 6篇
  • javaweb 1篇
  • Windows 3篇
  • ssm 3篇
  • Linux 31篇
  • 编译器 2篇
  • spring 3篇
  • js 3篇
  • MongoDB 1篇
  • Vue 10篇

最新评论

  • spring cloud 子项目不能继承父项目版本 unknown问题解决

    朱颜_辞镜: 这个是啥意思

  • spring cloud 子项目不能继承父项目版本 unknown问题解决

    朱颜_辞镜: 这个是啥意思

  • unable to access 'https://github.com/用户名/仓库名.git/': SSL certificate problem: self问题解决

    m0_46055393: nbnbnbnbnbnb感谢感谢感谢!!!!!!

  • Visual Studio 2017/2019卸载教程

    温带季候风: 如果装了数据库,这个卸载软件不要随便用,会误删数据库文件,导致数据库也打不开,很麻烦

  • 算式900(2017蓝桥杯省赛c组题目)

    陈天123: 感觉应该加点简单的注释

大家在看

  • GLM4 开源了!!! 132
  • java中创建对象与构造方法 580
  • 003基于SSM+Jsp+Mysql的美好生活日志网 604
  • 基于SSM+Jsp的二手手机回收平台系统 555
  • 代码随想录算法训练营第五十一天 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

最新文章

  • Centos 部署Flask+Nginx+uwsgi+Python3
  • Java中的枚举你真的了解嘛?
  • Java中的反射与代理
2021年11篇
2020年59篇
2019年62篇
2018年19篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司恩施网站制作设计价格阳泉网站设计哪家好上饶网站改版多少钱商丘seo网站推广报价坂田优秀网站设计报价漯河网站优化软件多少钱长沙网页设计公司绵阳seo网站优化公司宜春SEO按效果付费聊城关键词按天收费价格安顺网站推广工具推荐乐山外贸网站制作多少钱云浮关键词排名包年推广多少钱中卫SEO按天计费贵港设计网站多少钱巴中网站推广工具价格赣州网站搭建南通网站定制价格重庆网站定制公司醴陵网站制作多少钱吕梁网络广告推广多少钱珠海网站建设多少钱绥化营销网站价格雅安英文网站建设报价罗湖关键词按天扣费多少钱黑河SEO按天扣费公司定西关键词排名多少钱呼和浩特网站排名优化报价四平模板网站建设价格自贡关键词排名公司歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化