类的六种关系
一、依赖关系
只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编译都通过不了。一下情况视为对A类对B类的依赖关系:
1)B类是A类的成员属性
2)B类是A类某方法的返回值类型
3)B类值A类某方法的参数类型
4)B类是A类的某方法的局部变量(排除形参),此用法违反了迪米特法则
二、泛化关系
泛化关系是依赖关系的特例,就是继承关系。
三、实现关系
类实现接口
四、关联关系
关联关系也是依赖关系的一种特例【双向的依赖关系】
五、聚合关系
public class A{ private B b; public void setB(B b){ this.b = b; } } class B{ }
六、组合关系
public class A{ private B b = new B(); } class B{ }
聚合与组合的区别就是A类聚合B类,当A类创建对象时,作为其成员属性的B类对象并不会实例化。而A组合B类,当A类创建对象时,作为其成员属性的B类对象也会被实例化。所以一个是空心菱形,一个是实心菱形。