前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对象与对象之间的关系

对象与对象之间的关系

作者头像
九转成圣
发布2024-04-10 17:29:51
510
发布2024-04-10 17:29:51
举报
文章被收录于专栏:csdncsdn

对象与对象之间的关系

标签:java基础

依赖关系

代码语言:javascript
复制
class Student {
    private List<Course> courses;
}

class Course {
    
}
  1. 方法入参
代码语言:javascript
复制
public class EmpServiceImpl implements EmpService{

    @Resource
    EmpMapper empMapper;

    @Override
    public int save(Emp emp) {
        return empMapper.save(emp);
    }
}
  1. 局部变量
代码语言:javascript
复制
public void query(){
    Emp emp = new Emp();

}
  1. 返回值
代码语言:javascript
复制
public Emp getById(Integer empno) {
    return empMapper.getById(empno);
}
  1. 静态方法依赖
代码语言:javascript
复制
public Integer removeBatch(Collection<Integer> empnos){
    if (!CollectionUtils.isEmpty(empnos)) {
        return empMapper.removeBatch(empnos);
    }
    return 0;
}

关联关系

单向关联
代码语言:javascript
复制
public class EmpServiceImpl implements EmpService{

    @Resource
    EmpMapper empMapper;

}
双向关联
自关联

聚合关系(Aggregation)

聚合关系表示整体与部分的关系,是一种弱的拥有关系。一个对象可以包含另一个对象,但它们的生命周期可以独立存在。聚合关系通常用成员变量表示。

代码语言:javascript
复制
class Book {
    private String title;

    public Book(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }
}
class Library {
    private List<Book> books;

    public Library() {
        this.books = new ArrayList<>();
    }

    public void addBook(Book book) {
        books.add(book);
    }

    public List<Book> getBooks() {
        return books;
    }
}

组合关系

组合关系表示整体与部分的关系,是一种强的拥有关系。整体对象负责管理部分对象的生命周期。组合关系通常也用成员变量表示。

代码语言:javascript
复制
class Wheel {
    private String position; // 前左、前右、后左、后右等

    public Wheel(String position) {
        this.position = position;
    }

    public String getPosition() {
        return position;
    }
}
class Car {
    private List<Wheel> wheels = new ArrayList<>();

    public Car() {
        // 添加四个轮子到汽车
        wheels.add(new Wheel("Front Left"));
        wheels.add(new Wheel("Front Right"));
        wheels.add(new Wheel("Rear Left"));
        wheels.add(new Wheel("Rear Right"));
    }

    // 获取汽车的所有轮子
    public List<Wheel> getWheels() {
        return wheels;
    }
}

继承关系

实现关系

辩证

关联与聚合

  1. 关联和聚合表现在代码层面是一致的,只能从语义级别来区分。
  2. 关联和聚合的区别主要在语义上,关联的两个对象之间一般是平等的,例如你是我的朋友,聚合则一般不是平等的
  3. 关联是一种结构化的关系,指一种对象和另一种对象有联系。

聚合与组合

  1. 聚合与组合都是一种结合关系,只是额外具有整体-部分的意涵。
  2. 部件的生命周期不同 聚合关系中,整件不会拥有部件的生命周期,所以整件销毁时,部件不会被销毁。再者,多个整件可以共享同一个部件。 组合关系中,整件拥有部件的生命周期,所以整件销毁时,部件一定会跟着删除。而且,多个整件不可以同时间共享同一个部件。
  3. 聚合关系是“has-a”关系,组合关系是“contains-a”关系。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 对象与对象之间的关系
    • 依赖关系
      • 关联关系
        • 单向关联
        • 双向关联
        • 自关联
    • 聚合关系(Aggregation)
    • 组合关系
    • 继承关系
    • 实现关系
    • 辩证
      • 关联与聚合
        • 聚合与组合
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档