简单谈谈Java类与类之间的关系

 更新时间:2016年05月20日 08:58:28   投稿:hebedich  
类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就简单给大家介绍一下。

类与类之间最常见的关系主要有三种:依赖(uses-a)、聚合(has-a)和继承(is-a)。

下面以在线书店订单系统为例,来详细的讲述这三种关系的概念。

在线书店订单系统的主要功能是:注册用户可以登录到网上书店选购图书,在线填写订单,并支付购书款。书店确认已经收到购书款时,按用户留下的地址邮寄图书。可以在这个系统中建立几个类,有图书(book)、账户(account)、订单(order)、地址(address)等,如下图所示:

依赖(uses-a)

依赖关系是类中最常见的关系,例如订单类(order)需要访问用户账户类(account),所以在订单类中需要引用账户类,即订单类依赖账户类,但图书类不需要依赖账户类。

如果修改账户类,会影响到订单类。依赖的实质就是类中的方法可以操作另一个类的实例。在实际程序设计中,建议尽量减少相互依赖类的数量。如下图所示:

聚合(has-a)

因为订单需要指明订购什么图书,这就涉及到图书类,即包含了图书类。聚合与依赖关系的不同在于,订单类可以不拥有所有账户类对象,但是必须拥有所有图书类对象,因为图书类的对象是订单的主要目的,如下图所示:

继承

继承就是一个类能调用另一个类的所有数据成员,并在当前类中不需要再重新定义,本章已经讲得很明白了。

相关文章

  • Java多线程案例实战之定时器的实现

    Java多线程案例实战之定时器的实现

    在Java中可以使用多线程和定时器来实现定时任务,下面这篇文章主要给大家介绍了关于Java多线程案例之定时器实现的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • springMVC返回Http响应的实现

    springMVC返回Http响应的实现

    本文主要介绍了在Spring Boot中使用@Controller、@ResponseBody和@RestController注解进行HTTP响应返回的方法,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03
  • Java中的内存泄漏

    Java中的内存泄漏

    这篇文章主要介绍了Java中的内存泄漏的相关资料,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-11-11
  • SpringBoot实现固定和动态定时任务的三种方法

    SpringBoot实现固定和动态定时任务的三种方法

    定时器是我们项目中经常会用到的,本文主要介绍了SpringBoot实现固定和动态定时任务的三种方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Java switch多值匹配操作详解

    Java switch多值匹配操作详解

    这篇文章主要介绍了Java switch多值匹配操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • java SpringBootWeb请求响应举例详解

    java SpringBootWeb请求响应举例详解

    SpringBoot是一种整合Spring技术栈的方式(或者说是框架),同时也是简化Spring的一种快速开发的脚手架,这篇文章主要给大家介绍了关于java SpringBootWeb请求响应的相关资料,需要的朋友可以参考下
    2024-05-05
  • MyBatis-Plus的yml配置方式小结

    MyBatis-Plus的yml配置方式小结

    本文主要介绍了MyBatis-Plus的yml配置方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • spring boot创建项目包依赖问题的解决

    spring boot创建项目包依赖问题的解决

    本篇文章主要介绍了spring boot创建项目包依赖问题的解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 你所不知道的Spring自动注入详解

    你所不知道的Spring自动注入详解

    这篇文章主要给大家介绍了关于你所不知道的Spring自动注入的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 解决springboot报错Could not resolve placeholder‘xxx‘ in value“${XXXX}

    解决springboot报错Could not resolve placeholder‘x

    这篇文章主要介绍了解决springboot报错:Could not resolve placeholder ‘xxx‘ in value “${XXXX}问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论