`
wangyanlong0107
  • 浏览: 477234 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

【转】Java中类与类之间的关系

    博客分类:
  • UML
 
阅读更多

类与类之间存在以下关系:

  1、 泛化(Generalization)

  很简单,就是我们常说的继承。是说子类获得父类的功能的同时,还可以扩展自己的功能。

  如图:

泛化

  Java代码中表现为:extends 和 implements

  2、 依赖(Dependency)

  两个相对独立的东东(A和B),当A负责构造B时,A与B形成依赖关系,即A使用B。

  如图:

Java中类与类之间的关系

  Java代码中的表现为局部变量方法的参数,以及对静态方法的调用。

  3、 关联(Association)

  两个相对独立的东东(A和B),当A对象持有B对象的时候,形成关联关系。

  关于分为有两种特殊的形式,聚合(Aggregation)和组合(Composition),聚合和组合只有概念上的区别,在Java中的代码实现上没有区别。

  聚合:指的是整体与部分的关系,如图:

聚合:指的是整体与部分的关系

  组合:表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期,即整体对象不存在,部分对象也将不存在,如图:

Java中类与类之间的关系

  Java代码中,表现为成员变量。

    聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。

  4、 总结

  在Java中,应该尽量优先使用组合,而不是继承,因为继承会使得类关系过于复杂化,破坏了封装性,使用组合一样可以获得已有类的功能,而且会使新类更加稳固。

  实际上,从依赖 -----〉聚合--------〉组合,类与类之间的关系更加紧密,互相之间的影响越来越大,其实我们平常比较少去区分这些关系,而且事实上这东西的定义不太好理解,所以肯定会导致认识上的偏差,所以我们使用这些东西的时候,尽量靠近大家都认同的做法,这样容易让别人理解。

分享到:
评论

相关推荐

    java中类与类之间的关系

    能够很好的了解java中类与类之间的关系,如依赖,泛化,关联,聚合。以及它们之间的关系和区别。

    Java中类与类之间的关系

    在Java中,了解类与类之间的关系。帮助初学者去理解

    java类与类之间的关系

    java面相对相类与类之间的关系,理论详细

    12-JAVA类之间的关系

    JAVA类之间的关系思维导图,便捷整理思路,泛化、实现、依赖、关联、组合、聚合……

    类与对象-java实验报告

    1) 熟悉Java中类的设计; 2) 设计类的数据域与方法; 3) 设计类与类之间的关系 4)使用设计的类 实验内容 对平面几何中的各种基本图形使用面向对象的设计方法建模,需要设计的类包括:点、直线、三角形、矩形、...

    类与类之间的关系

    java类的阐述,简单的讲述类与类之间的关系。

    java倒类详解 讲解java Dao类的里各种语句与变量之间的关系

    讲解java Dao类的里各种语句与变量之间的关系 ························································

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

    类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就简单给大家介绍一下。

    Java抽象类和接口和继承之间关系

    Java抽象类和接口和继承之间关系 Java抽象类和接口和继承之间关系

    JAVA_API1.6文档(中文)

    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...

    java IO流(包含类之间的关系图)

    包含IO中的类的关系图和示例代码,初学者可以参考

    java 卡车和卡车司机之间的关系

    java 卡车和卡车司机之间的关系 java 卡车和卡车司机之间的关系

    类和对象的设计及之间的关系

    7.1 建立类和对象的模型 7.2 寻找系统中的类 7.3 确定类或对象之间关系 7.4 设计类的属性 7.5 设计类的职责 7.6 小结

    java类与对象实验报告.docx

    2、用类来描述游戏角色的交手次数、经验值、生命值之间的关系,并断定角色决斗的胜负。 1)、两游戏角色决斗。角色1交手次数+1,生命值-1,经验值+2;角色2交手次数+1,生命值-2,经验值+3。经验值每增加50时,...

    Java 1.6 API 中文 New

    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一...

    JavaAPI1.6中文chm文档 part1

    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...

    Java 类的介绍

    Java 关于类和对象之间关系的介绍,可以大概有个了解。

    离散数学二元关系类(Java实现)

    * 关系自身与某一关系的运算 * 两个关系之间的运算 * 求一关系的自反闭包 * 求一个关系的对称闭包 * 求一个关系的传递闭包 AND//关系的交运算 OR//关系的并运算 NOT//关系的非运算 XOR//关系的异或运算 SUB//...

    \\java类、抽象类、接口、继承和对象解析 .doc

    \\java类、抽象类、接口、继承和对象解析 .doc

Global site tag (gtag.js) - Google Analytics