什么是 Java 中的组合以及示例

已发表: 2021-04-09

Java 是一种通用语言,它通过在两个类之间建立关系来支持面向对象的编程和代码可重用性。 Java 中有两种类型的关系或关联用于重用代码并减少从一个类到另一个类的重复性。

这些关系是 IS-A(继承)和 HAS-A(关联)。 虽然 IS-A 类之间存在紧密耦合,但 HAS-A 类是松散耦合的,更适合程序员。

HAS-A 关系在 Java中分为两种类型,即聚合和组合 本文基于OOP的组合概念。 我们将看到许多关于组合如何编码以及实现时获得的优势的真实示例。

目录

Java中关联或关系的简要叙述

在面向对象编程中,对象相互关联并使用它们之间的通用功能。 这就是Java程序中的继承、关联、聚合和组合主题的来源

Java中的继承(IS-A)和关联(HAS-A)

1. 继承(IS-A)

IS-A 关系表示一个对象是另一个对象的类型。 它是使用“扩展”和“实现”关键字实现的。

示例: HP IS-A 笔记本电脑

2.协会(HAS-A)

HAS-A 关系表示一个类与另一个类有关系。 例如,A 类拥有 B 类的引用,并且可以访问 B 类的所有属性。

示例:人体 HAS-A 心脏

资源

资源

3.聚合与组合

Has-A关系或关联可以分为聚合和组合。 聚合容器类和引用类可以独立存在。 如果容器类被销毁,则组合引用类将不存在。

让我们举个例子来理解聚合和组合。 汽车有它的零件,例如引擎、车轮、音乐播放器等。没有引擎和车轮,汽车就无法运行,但没有音乐播放器就可以运行。 这里引擎和汽车是组合关系,汽车和音乐播放器是聚合关系。 在聚合的情况下,一个对象可以存在而不是主对象的一部分。

资源

Java中的组合

一个与另一个类之间存在强关系时,Java 中两个相互关联的对象之间就存在组合。 没有所有者或父类,其他类就不能存在。 例如,“人类”类是 Heart和 lungs的组合 当人类物体死亡时,没有任何部分存在。

组合是一种受限的聚合形式。 在组合中,一个类包含另一个类并依赖于它,因此如果没有另一个类,它就不能在功能上存在。

Java中组合的实现

引擎和汽车的关系是使用 Java 类实现的,如下所示。 在 Java 中,'final' 关键字用于表示合成。 这是因为 'Owner' 对象期望部件对象可用并通过使其成为'final'来发挥作用

公共汽车{

私有最终引擎引擎;

公共汽车() {

引擎 =引擎();

}

}

引擎{

私有字符串类型;

}

让我们再举一个描述继承和组合的例子。

资源

在这个程序中,Honda 类是 Car,并从 Car 类扩展而来。 汽车引擎对象用于本田类。

类汽车引擎{

公共无效StartEngine(){

System.out.println(“汽车引擎已启动。”);

}

公共无效停止引擎(){

System.out.println(“汽车引擎已停止。”);

}

}

类车{

私有字符串颜色;

私人 int maxi_Speed;

公共无效汽车详细信息(){

System.out.println(“汽车颜色=”+颜色+“;最大速度=”+maxi_Speed);

}

//设置汽车颜色

公共无效 setColour(字符串颜色){

this.color = 颜色;

}

//设置最大车速

公共无效 setMaxiSpeed(int maxi_Speed) {

this.maxi_Speed = maxi_Speed;

}

}

本田类扩展汽车{

公共无效本田开始(){

CarEngine Honda_Engine = new CarEngine(); //作品

Honda_Engine.startEngine();

}

}

公共类主要{

公共静态无效主要(字符串[]参数){

本田 HondaJazz = new Honda();

HondaJazz.setColour(“黑色”);

HondaJazz.setMaxSpeed(160);

HondaJazz.carDetails();

HondaJazz.HondaStart();

}

}

输出:

汽车颜色 = 黑色; 最大速度 = 160

汽车发动机已经启动。

输出是使用合成导出的,并显示了 Honda Jazz 汽车的细节。

关联的 UML 表示

Java中A类和B类之间的关联、聚合和组合关系在UML图中表示如下:

关联:A—>B

作文:A—-<填充>B

聚合:A—-<>B

从世界顶级大学在线获得软件工程学位获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

Java 中组合的好处

在 Java 中使用组合设计技术有以下好处:

  1. “优先对象组合而不是类继承”总是可行的。 类通过组合实现多态性和代码重用。
  2. 组合是灵活的,您可以在运行时通过更改包含的对象来更改类实现,并更改其行为。
  3. 基于组合的设计具有较少的类。
  4. 类之间的“HAS-A”关系在语义上比“IS-A”关系更正确。
  5. Java 中的组合提供了更好的类可测试性,这在测试驱动开发中特别有用。
  6. 通过将多个对象组合成一个对象,可以在语言中实现“多重继承”。
  7. 在组合中,方法或属性名称之间没有冲突。

结论

Java 中的组合在编程时提供了许多优点,并且是最受欢迎的设计方法之一。 在这篇文章中,我们试图通过真实的例子和实用的代码让你理解这个重要的概念。 组合提供了灵活性和健壮的代码。 其代码可重用性功能有助于避免代码重复并实现成本效益。 这使其成为各种程序中广泛使用的方法之一。

在计算机科学课程中通过upGrad 的理学硕士课程学习Java作文,该课程旨在让您学习和提升您在软件开发方面的技能。

合格

AB achelor's degree 50% 或同等分数。 不需要初始编码经验。

价钱

印度居民的计划费用为 13 卢比,095/月,国际居民为 5999 美元。

踏上梦想的工作

申请机器学习与人工智能理学硕士