程序员面试闪充--UML类图关系

我们曾借白茶清欢等一个人,曾借花开花落叹宠辱不惊。今天借着类图来了解面向对象又有何不可呢?

小视频传送门:小视频传送门

对象模型中,类图是来描述系统的静态结构,是对模拟客观世界的对象及对象见的联系的映射。

一、类的表示

UML中矩形表示类,用两条横向把矩形分成上、中、下3个区域。分别表示类名,属性和操作。

属性或者方法名称前加上 “+”、“-”或者“#”号则表示了这个属性或者方法的可见性。“+”表示public,“-”表示private私有的,而“#”号则表示protected也就是受保护的。


二、关联的表示

1)单向关联
单向关联用一个带箭头的直线表示。比如说亚当与肋骨,每个亚当类持有一个类型为肋骨类的成员变量类实现。

2)双向关联
所谓双向关联就是双方各自持有对方类型的成员变量,用不带箭头的直线表示。比如说顾客类中维护着一个产品数组,表示一个顾客购买了哪些产品,而在产品类中维护这一个顾客类型的成员变量表示这个产品被哪个顾客所购买。


3)多元关联
多元关联在绘制数据库相关的图形中常见,用一个菱形符号联结相关联的连线。
像图中所示一样,程序猿小哥哥们就会使用开发语言去开发项目呢!

4)受限关联
在UML类图中用一个带有箭头并且指向自身的直线表示。受限关联由两个类及一个限定词组成。限定词是一种特殊属性,用来减少关联的重数。比如说一个文件夹和文件两个类,一个文件只属于一个文件夹,在文件夹的内容中,文件名唯一确定一个文件,一个文件与文件夹及文件名有关。限定词“文件名”把一对多的关联简化为了一对一的关系。

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

6)关联的重数
关联的重数可以用关联连线末端的特定符号表示。
“1+”也可以用“*”代替,表示一个或多个。如果没有符号的话就只表示一对一关联。

三、关系的表示

1)聚合关系
UML中聚合关系中用带空心菱形和箭头的直线表示。聚合关系表示has-a的关系,是一种不稳定的包含关系。它最大的特点就是两个类之间有整体和局部的关系,并且就算没有了整体,局部也可以单独存在。就像卡车与引擎的关系,离开了卡车,引擎还是能单独存在。有你,只是锦上添花,没你,我也能光芒万丈。

2)组合关系
组合关系是用带实心的菱形和箭头的直线表示。它与聚合最大的不同之处就是部分脱离了整体便不复存在。
就像大雁与翅膀的关系一样。翅膀不能脱离了大雁而单独存在。

3)依赖关系
依赖关系用带有指向的独立类箭头的虚线表示~~是虚线啊
一个类A只有依靠另一个类B才能发挥作用就称A依赖于B。
比如说司机这个类,必须要依靠一个车对象才能发挥作用,因此就说司机类依赖于车。

4)继承关系
继承关系用带空心三角形的直线表示。当项目中有多个类出现相同部分的实例变量和方法中,我们就考虑用继承的方法。比如说人类与学生类或者老师类都是继承关系。


既然用过继承,相信大家也一定听说过泛化。
泛化表示is-a的关系,是对象之间耦合度最大的一种关系。实际上,泛化关系是继承的反关系,也就是说子类是从父类继承的,而父类则是子类的泛化。

5)实现
实现是一种类与接口的关系,表示类是接口所有特征和行为的实现。在UML类图中用带空心三角形的虚线表示。


以上就是UML图中类与类之间的关系。

四、面试题

问题1:你认为UML重要么?为什么?
分析:(这不废话吗?没作用你会问我?)UML在设计过程中还是有一定作用的,只是不到真正写代码,永远都不可能明确所有细节。
回答:UML当然很重要。写软件就好像建造建筑物一样。系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。而UML则提供了分析师,设计师和程序员之间在软件设计时的通用语言。现在已经成为了面向对象软件分析与设计建模的事实标准。

问题2:UML类图在系统中是用来做什么的?
回答:类图出现在系统中的不同类来描述系统的静态结构,它用来描述不同的类以及它们之间的关系。

问题3:在UML中,类图由哪几部分组成?
回答:类图由三部分组成。第一部分是类名,每个类必须有一个名字。第二部分是类的属性,属性是指类的性质,也就是类的成员变量。包含了可见性、属性名称、类型和默认值等信息。第三部分是类的操作,操作是类的任意一个实例对象都拥有的行为,是类的成员方法。

问题4:请说明一下组合与聚合的区别
回答:其实对于这些比较基础的题目,相信软件工程专业的小伙伴们是对答如流了。聚合与组合都表示整体与部分的关系,只不过在聚合关系中,成员对象可以脱离整体对象独立存在,而在组合关系中,成员对象与整体对象之间具有同生共死的关系,例如头与嘴巴,如果头没了,那么嘴巴自然也不复存在了。

古语有云:非学无以广才,非志无以成学。视频的最后祝大家Study well(hard) and make progress every day.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • 在UML类图中,一般有如下几种关系: 依赖(Dependency) 关联(Association) 聚合(Aggr...
    lyu571阅读 537评论 0 1
  • 在UML 2.0的13种图形中,类图是使用频率最高的UML图之一。Martin Fowler在其著作《UML Di...
    雷雷_zll阅读 13,241评论 0 14
  • 泛化 【定义】是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为,或者子接口与父接口的...
    superfish97阅读 360评论 0 0
  • 对不起那时候的自己 对不起那时候让你经历伤害 对不起 但或许经历那些是必须的 因为那些 你成为了你 你从伤痛中走来...
    阿楠的小窝阅读 439评论 0 0
  • 诗/雪伦 园丁修剪时看的不是花草 他们的眼睛锋利的很 绝不容一粒沙子 一朵娇艳的花 永远比不得一条直线或是弧线 即...
    雪伦阅读 226评论 0 0