话不多说,开门见山!
写类图之前看见一篇写的很好的文章,所以直接引用推荐。
https://www.cnblogs.com/shindo/p/5579191.html
关键知识点:
(1)类自身属性
(2)类自身方法
(3)类与类的关系
其中类与类之间有依赖、关联、聚合,组合,继承,接口实现六种方法。
下面说一下个人对这几种方法的看法,可以方便大家理解。
六种方法可以分为四类,方便理解
1.接口实现,继承
- 关联,聚合,组合
- 依赖
1.接口实现 VS 继承(A,B俩个类为例)
理论上:继承关系只能单继承,接口实现可以多继承;
实践上:如果B继承的是A的属性,如:姓名,年龄,性别 等,那就是继承关系,如果B继承的是A的方法,如:行走,飞翔,游泳(这比较抽象,在一般项目中大部分是指对某事物的增删改查等操作),那就叫做接口实现。
总之,继承描述了“is a”的关系,即“子is a父”;
接口实现描述了“can do”的关系,即“子can do父”。
- 关联,聚合,组合
关联(Association)关系是类与类之间的联接,它使一个类知道另一个类的属性和方法。关联可以是双向的,也可以是单向的。在Java语言中,关联关系一般使用成员变量来实现。
聚合(Aggregation) 关系是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样,聚合关系也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分。
组合(Composition) 关系是关联关系的一种,是比聚合关系强的关系。聚合是一个整体,一个部分,部分脱离了整体还能存在。而组合关系中,部分脱离了整体就不能存在。
- 依赖
依赖关系表示一个类依赖于另一个类的定义。例如,一个人(Person)可以买车(car)和房子(House),Person类依赖于Car类和House类的定义,因为Person类引用了Car和House。与关联不同的是,Person类里并没有Car和House类型的属性,Car和House的实例是以参量的方式传入到buy()方法中去的。一般而言,依赖关系在Java语言中体现为局域变量、方法的形参,或者对静态方法的调用。
参考网站:
https://www.cnblogs.com/wanghuaijun/p/5421419.html
https://www.cnblogs.com/shindo/p/5579191.html