类之间的关系映射到Java中
提示:以下是本篇文章正文内容,下面案例可供参考
类图关系有弱到强:依赖、关联、聚合、组合、继承、实现
1. 依赖关系:
- 用虚线箭头表示,箭头指向被依赖的类(---->)
- 依赖关系表示一个类使用另一个类的对象,但彼此之间的关系不是很强,一个类的变化不会直接影响到另一个类。
- 在Java中,依赖关系通常通过构造函数参数、方法参数或局部变量来表示。
// 依赖关系
public class ClassA {
public void doSomething(ClassB b) {
// 使用ClassB的对象进行操作
}
}
例如:“动物”类 依赖 “氧气”类
2. 关联关系:
- 单向关联:一个类中的实例变量引用另一个类的对象(—>)
- 双向关联:两个类中的实例变量相互引用对方的对象(—)
- 关联关系表示两个类之间有联系,一个类的对象与另一个类的对象相关联。
- 在Java中,关联关系通常通过实例变量来表示。
// 关联关系
public class ClassA {
private ClassB b;
// 构造函数或方法中传入ClassB的对象
public void setClassB(ClassB b) {
this.b = b;
}
}
例如:“企鹅”类 可以关联 “气候”类,气候会影响企鹅
3. 聚合关系:
- 空心菱形+实线箭头,箭头指向整体类。
- 聚合关系表示"整体与部分"的关系,部分可以独立存在。
- 在Java中,聚合关系通常通过实例变量来表示,部分类的实例可以作为整体类的成员变量。
// 聚合关系
public class ClassA {
private List<ClassB> bList;
// 构造函数中创建List对象
}
例如:“鸟群”类 中可以聚合 多个“小鸟”类
4. 组合关系:
- 实心菱形+实线箭头,箭头指向整体类
- 组合关系表示"整体与部分"的关系,部分不能独立存在。
- 在Java中,组合关系通常通过实例变量来表示,部分类的实例在整体类的构造函数中被创建。
// 组合关系
public class ClassA {
private ClassB b;
public ClassA(){
b = new ClassB();
}
// 构造函数中创建ClassB的对象
}
例如:“小鸟”类 需要组合 “翅膀”类,在 “小鸟”类 中 “翅膀”类 作为属性
5. 继承关系
- 实线箭头+空心三角形,箭头指向父类。
- 继承关系表示一个类是另一个类的子类,子类继承了父类的属性和方法。
- 在Java中,继承关系通过使用关键字
extends
来表示。
// 继承关系
public class ChildClass extends ParentClass {
// 子类继承了父类的属性和方法
}
例如:“小鸟”类 可以继承 “动物”类
6. 实现关系
- 虚线箭头+空心三角形,箭头指向接口
- 实现关系表示一个类实现了一个接口,类需要实现接口中定义的所有方法。
- 在Java中,实现关系通过使用关键字
implements
来表示。
// 实现关系
public class MyClass implements MyInterface {
// 实现接口中定义的方法
}
例如:“小鸟”类 可以实现 “飞行“接口