类之间的关系:
泛化:类和类,接口和接口之间的继承
实现:类实现接口
关联:类和类之间的连接(我和朋友)
聚合:较强的关联关系,整体和部分(班级和学生)
合成:比聚合关系强的关联关系(人和四肢)
依赖:一对象的引用在另一类中为局部变量
1、泛化关系:类和类之间的继承关系以及接口与接口之间的继承关系
2、实现关系:类实现接口
3、关联关系:类和类之间的连接,一个类可以知道另一个类的属性和方法,在java语言中使用实例变量体现。
在当前对象中含有指向其他对象的引用。(两对象在同一个层级上,我和朋友 有别于汽车和轮胎这种关系)
单向关联、双向关联
Me类
public class Me{
String name;
//在当前类中含有其他类的引用
//在当前对象中含有指向其他对象的引用。
Friend f;//Me和Friend之间是关联关系
Me(friend f){
this.f = f;
}
}
Friend类
public class Friend{
String name;
int tel;
Friend(Sting name){
this.name = name;
}
}
测试程序
public static void main(String[] args){
Friend f = new Friend("麦麦");
//建立关联关系
Me cys = new Me(f);
//通过csy可以访问f的属性
System.out.println(csy.f.name);
}
4、聚合关系,是关联关系的一种,是较强的关联关系,是整体和部分的关系。
如:汽车和轮胎
聚合关系的类处在不平等的层次上,一个代表整体,一个代表部分,在java语言中使用实例变量体现
聚合关系,整体不依赖部分,部分也不依赖整体
整体无法决定部分的生命周期
//整体
public class Classroom{
List<Student> stus;//Classroom和List集合是关联关系,和Student是聚合关系
}
//部分
public class Student{
}
5、合成关系(人与四肢):比聚合关系强的关联关系
合成关系和聚合关系是相似的,区别在于整体和部分是紧密相连的,整体的生命周期决定部分的生命周期
public class 人{
List<四肢> s;
}
public class 四肢{
}
6、依赖关系:
依赖是局部类型
public class Test{
User u1 = new User();//关联关系
public void m1(){
//局部变量,依赖关系
User u2 = new User();
}
}
class User(){
}