主要介绍java中的关联关系、聚合关系、合成关系以及依赖关系
顺便介绍is-a,is-like-a,has-a
类之间的关系
泛化关系
类和类之间的继承关系以及接口与接口之间的继承关系
实现关系
类对接口的实现

关联关系
类与类之间的连接,一个类可以知道另一个类的属性和方法,在java语言中使用成员变量体现
Me me = new Me(new Friend())//建立关联关系
-
例如我和朋友的关系
- 我可以找到我朋友的地址
public class Friend{ public String addr; } class Me{ Friend f; public Me(Friend f){ this.f = f; } // test public static void main(String[] args){ Friend f = new Friend(); Me me = new Me(f); System.out.println(me.f.addr)//获取朋友的地址 } }

聚合关系
聚合关系是关联关系的一种,是较强的关联关系,是整体和部分的关系。例如:汽车和轮胎
和关联关系不同,关联关系的类处于同等的层次上,而聚合关系的类处于不同等的层次上,一个代表整体,一个代表部分
聚合关系是整体和部分的关系
整体不依赖部分
部分也不依赖整体
整体无法决定部分的声明周期(人和四肢的关系就不属于聚合关系)
-
例如教室和学生的关系
public class Student{ } public class ClassRoom{ List<Student> s; }

合成关系
合成关系也是关联关系的一种,比聚合关系更强一些
合成关系和聚合关系是相似的,区别在于:
合成关系的整体和部分是紧密联系的,整体的生命周期决定部分的生命周期
-
例如人和四肢的关系
public class human{ List<四肢> s; }

依赖关系
依赖关系比较弱,是一种比关联关系弱的一种关系
在
java语言中体现在:返回值、参数、局部变量和静态方法的调用
-
例如
public class Test{ public void m1(){ User user = new User();//依赖关系 } } class user{ }

is-a/is-like-a/has-a
is-a
-
Dog is a Animal -
is-a 是继承关系
public class Animal{ } class Dog extends Animal{ }
is-like-a
-
A is like a I -
is-like-a 是实现关系
public Interface I{ void m1(); } class A implements I { public void m1(){ } }
has-a
-
A has a B -
has-a 是包含关系
public class B{ } class A{// A has a B private B b; }
本文深入解析Java中的关联、聚合、合成及依赖关系,探讨is-a、is-like-a、has-a概念,以及类与接口的继承与实现关系。通过具体代码示例,帮助读者理解类间复杂关系。
1970

被折叠的 条评论
为什么被折叠?



