前言 知道类的几种关系也是编程的基础知识,通常我们在软件设计、架构设计、开发中都需要使用的, 类的关系 一般情况下类的关系分为6种,分别是实现、继承、依赖、关联、聚合、组合,下面将这6中关系简单的分类...在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。...在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性。在UML类图设计中,实现用一条带空心三角箭头的虚线表示,从类指向实现的接口。...在UML类图设计中,依赖关系用由类A指向类B的带箭头虚线表示。...在UML类图设计中,关联关系用由关联类A指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多重性标记。
UML类图展示 ?...给定有关联的两个类,可以从一个类的对象得到另一个类的对象。关联有两元关系和多元关系。两元关系是指一种一对一的关系,多元关系是一对多或多对一的关系。...• 在UML类图中,用实线连接有关联的对象所对应的类,在使用Java、C#和C 等编程语言实现关联关系时,通常将一个类的对象作为另一个类的属性。...在UML中,泛 化关系用带空心三角形的直线来表示。 • 在代码实现时,使用面向对象的继承机制来实现泛化关系,如在Java语言中使用extends关键字、在C /C#中使用冒号“:”来实现。 ?...泛化对应Java中继承关系,即子类继承父类中出private修饰外的所有东西(变量、方法等)。
关系有点多,可能没法看,不过还算比较全。
UML表示类图如图所示: 2、接口的表示 在UML中,接口使用一个带有名称的小圆圈来进行表示: 但有的地方在类名前加上“>”来表示接口: 除了类与接口的表示之外,我们还需要了解类与接口之间的几种关系...【箭头指向】:带三角箭头的实线,箭头指向父类 4、 实现关系(Realization) 【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现....8、依赖关系(Dependency) 【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖....UML图,比较形象地展示了各种类图关系: 注:大雁和雁群的聚合关系弄反了,应该是雁群是整体,即菱形在雁群这边。...下面附上各类图关系的表示图,方便查询: 参考资料: [1]:http://blog.csdn.net/tianhai110/article/details/6339565 [2]:http://www.cnblogs.com
泛化(Generalization) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。...实现(Realization) 【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现. ...关联(Association) 【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。...依赖(Dependency) 【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖. ...各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 下面这张UML图,比较形象地展示了各种类图关系: ?
,与Java的略有差别。...二、类与类之间的关系 类与类之间主要有6种关系,包括依赖,关联,聚合,组合,继承,实现。他们的耦合度是一次增强的。...,在java中使用的是extends关键字。...public class Bird extends Animal{ } 6、实现(Implementation) 实现表示的是一个类实现一个或者多个接口,在java中使用的是implements...public class Bird implements Animal{ } 参考文献 深入浅出UML类图(http://www.uml.org.cn/oobject/201211231.asp)
类图一般是三行的结构: 类名称 属性:格式(可见性 名称:类型[=缺省值]) 方法:格式(可见性 名称(参数列表)[返回类型]) 注:在Visio中的画的类图中使用的是C#的数据类型,与Java的略有差别...二、类与类之间的关系 类与类之间主要有6种关系,包括依赖,关联,聚合,组合,继承,实现。他们的耦合度是一次增强的。...,在java中使用的是extends关键字。...public class Bird extends Animal{ } 6、实现(Implementation) 实现表示的是一个类实现一个或者多个接口,在java中使用的是implements...public class Bird implements Animal{ } 参考文献 深入浅出UML类图(http://www.uml.org.cn/oobject/201211231.asp)
什么是关系? 关系是指事物之间存在单向或双向的作用或者影响的状态。其中类与类之间要么有关系要么没关系,感觉这句话有点说的很无耻,谁都知道,但是其中奥妙在于很难确定类与类之间是否有关系。...证明两个或者多个类是否存在关系涉及到业务、架构、模块边界的问题,然而由于业务模型的抽象角度不同而不同,确定他们是否有关系是一件很不简单的事情。...Java类有关系的6种情况 继承:extends【is-a】 实现:implements【can do】 组合:类是成员变量【contain-a】 聚合:类是成员变量【is-a】 依赖:是除了组合与聚合外的单向弱关系...实现: 类和接口之间的关系,用空心三角形和虚线表示。 依赖: A类会用到B类,这种关系具有偶然性,临时性。但B类的变化会影响A类。这种在代码中的体现为:A类方法中的参数包含了B类。...由虚线和箭头表示 关联: A类会用到B类,这是一种强依赖关系,是长期的并非偶然。在代码中的表现为:A类的成员变量中含有B类。 由实线和箭头表示。
有时候学习某个类库需要了解类之间的关系,用来理解或者写文章,有些人会手动画UML图,比较浪费时间。 其实可以通过IDEA提供的功能来实现。...可以菜单或者快捷键直接显示继承关系图: 效果如下: 另外还可以添加其他想梳理的类,来查看他们之间的关系。...比如我们可以到List源码中,点击scroll from source到源码包中 然后添加ArrayList/LinkedList等到图中,查看他们之间的关系。...可以显示依赖关系 可以切换成圆形布局等 还可以显示属性,方法等 还可以分析依赖矩阵等,功能非常强大。
UML类图中的五种关系的耦合强弱比较:依赖<关联<聚合<组合<继承 一、依赖关系: (一)说明 虚线+箭头 可描述为:Uses a 依赖是类的五种关系中耦合最小的一种关系。...因为在生成代码的时候,这两个关系类都不会增加属性。 (二)依赖关系图与代码的对应关系 ?...在生成代码的时候,关联关系的类会增加属性。 (二)关联关系与代码的对应关系 ? PS:Water类与Climate类关联(水与气候关联)。...(四)思考: 依赖关系和关联关系的区别在哪里? 1、从类的属性是否增加的角度看 (1)发生依赖关系的两个类都不会增加属性。...2、从关系的生命期角度看: (1)依赖关系是仅当类的方法被调用时而产生,伴随着方法的结束而结束了。 (2)关联关系是当类实例化的时候即产生,当类销毁的时候,关系结束。
在Java与其他面向对象设计语言中,类之间常见的关系有6种 分别是: 依赖、关联、聚合、组合、继承、实现,他们的耦合度依次增强。...依赖关系表示一个类依赖于另一个类的定义,一个类的方法操纵另一个类的对象。 一般而言,依赖关系在JAVA中体现为局域变量、方法的形参,或者对静态方法的调用。 ?...在JAVA中,关联关系一般使用成员变量来实现。 在JAVA中,单向关联表现为:类A当中使用了类B,其中类B是作为类A的成员变量。 ...关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的。在JAVA中,聚合关系一般使用成员变量来实现,聚合和关联关系两者的代码表现是相同的,仅仅是在语义上有所区别。 ?...表示类与类(或者接口与接口)之间的父子关系。一般而言,如果类A扩展类B,类A不但包含从类B继承的方法,还会拥有一些额外的功能。在JAVA中,用关键字extends表示继承关系 ?
类图 以下类图使用 PlantUML 绘制,更多语法及使用请参考:http://plantuml.com/ 。...泛化关系 (Generalization) 用来描述继承关系,在 Java 中使用 extends 关键字。...(Realization) 用来实现一个接口,在 Java 中使用 implements 关键字。...) 和关联关系不同的是,依赖关系是在运行过程中起作用的。...A 类和 B 类是依赖关系主要有三种形式: A 类是 B 类方法的局部变量; A 类是 B 类方法当中的一个参数; A 类向 B 类发送消息,从而影响 B 类发生变化。
类图 以下类图使用 PlantUML 绘制,更多语法及使用请参考:plantuml.com/ 。...泛化关系 (Generalization) 用来描述继承关系,在 Java 中使用 extends 关键字。 ?...) 和关联关系不同的是,依赖关系是在运行过程中起作用的。...A 类和 B 类是依赖关系主要有三种形式: A 类是 B 类方法的局部变量; A 类是 B 类方法当中的一个参数; A 类向 B 类发送消息,从而影响 B 类发生变化。 ?...N @enduml Java程序猿部落 技术学习 / 经验分享 让自己每天都在进步
1.类图基础属性 类图的表示 -表示private #表示protected ~表示default,也就是包权限 _下划线表示static 斜体表示抽象 2.类与类之间关系 在UML...(Dependency) 类与类之间的关系 2.1泛化 介绍: 泛化(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系 (1)继承 介绍:...继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。...调用新陈代谢方法需要氧气类与水类的实例作为参数 依赖关系 2.3关联 介绍: 对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。...表示方法: 关联关系用实线箭头表示。 示例: 企鹅需要‘知道’气候的变化,需要‘了解’气候规律。当一个类‘知道’另一个类时,可以用关联。
Collection vs Collections 首先,“Collection”和“Collections”是两个不同的概念。从下面的层次关系图也可以看到。...“Collection”是Collection层次关系中的一个接口,但是“Collections”是一个类,这个类提供了可以用于某些Collection类型的静态方法!...Arrays也是一个类似的类,提供一些静态方法。 ? Paste_Image.png Collection的类和接口的层次关系 ? Paste_Image.png Map的类图 ?...Paste_Image.png 类总结 ? Paste_Image.png
UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。 这里简单介绍下设计模式种经常用到的类图,以及类之间的关系。...类、接口和类图 类(Class)是指具有相同属性、方法和关系的对象的抽象,它封装了数据和行为,是面向对象程序设计(OOP)的基础,具有封装性、继承性和多态性等三大特性。...类图在软件系统开发的整个生命周期都是有效的,它是面向对象系统的建模中最常见的图。...图 3 所示是“计算长方形和圆形的周长与面积”的类图,图形接口有计算面积和周长的抽象方法,长方形和圆形实现这两个方法供访问类调用。 ?...根据类与类之间的耦合度从弱到强排列,UML 中的类图有以下几种关系:依赖关系、关联关系、聚合关系、组合关系、泛化关系和实现关系。其中泛化和实现的耦合度相等,它们是最强的。 1.
java中集合关系图如下图所示:
而UML图分为用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等9种图。 在面向对象语言中,我们经常看到有用UML类图去表示各种接口和类之间的关系的。...经过我自己的理解,画出了六种关系的示例图。类的成员变量和方法前面的修饰符有public, private, protected, default,在UML类图中分别用 +, -, #, ~表示。...依赖关系 依赖关系是一种使用关系,表示某个类依赖于另外一个类,通常表现为,某个类的方法的参数使用了另外一个类的对象。 在UML类图中,依赖关系用带箭头的虚线表示,箭头从使用类指向被依赖的类。...在UML类图中,用带实心菱形的实线来表示组合关系,菱形指向整体。 ? 5. 实现关系 实现关系就是接口和实现类之间的关系。类实现了接口中的抽象方法。...泛化关系 泛化关系其实就是父子类之间的继承关系,表示一般与特殊的关系,指定子类如何特殊化父类的特征和行为。 在UML类图中,用带空心三角箭头的实线来表示泛化关系,箭头从子类指向父类。 ?
类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物. 动物、植物、手机、电脑.........Person类、Pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为 对象是抽象概念的具体实例 张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例。...能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念....//类:抽象的,实例化 //类实例化后会返回一个自己的对象!...//student对象就是一个student类的具体实例!
大家好,又见面了,我是你们的朋友全栈君。 初次接触UML的时候,就对比过类图中的几种关系(UML——类图),当时侧重的是对这些关系的通俗理解,忽略了图和代码的对应关系。...c#版UML类图中五大关系和代码的对应: 1.实现 实现通常描述的是类和接口的关系,一般都说什么类实现了什么接口。比如说下图中大雁类实现了飞翔接口。...代码实现: //将图转换成代码:“类名:接口名” class WideGoose: IFly { } 2.继承 在UML图中,准确的说继承应该是泛化,我们都知道继承和泛化都表示的是子类的父类的关系...代码实现 //图和代码的对应关系:“子类:父类” class Bird : Animal { } 可以看出继承和实现在代码中都是通过“:”来表示,我们也很容易理解。...3.关联 我们都知道关联又可以分为聚合,组合,他们的主要区别体现在类和类之间关联的强度。首先从最简单的关联关系说起: 当一个类知道另一个类时,可以用关联关系。
领取专属 10元无门槛券
手把手带您无忧上云