java中的聚合:定义和示例

Java中的聚合是两个类之间的关系,最好将其描述为“has-a”和“整体/部分”关系。它是一种更专业化的关系。聚合类包含对另一个类的引用,并被称为拥有该类的所有权。引用的每个类都被视为聚合类的一部分。...

Java中的聚合是两个类之间的关系,最好将其描述为“has-a”和“整体/部分”关系。它是一种更专业化的关系。聚合类包含对另一个类的引用,并被称为拥有该类的所有权。引用的每个类都被视为聚合类的一部分。

Hands typing on a keyboard

所有权发生的原因是聚合关系中不能存在循环引用。如果类别A包含对类别B的引用,而类别B包含对类别A的引用,则无法确定明确的所有权,并且关系只是关联关系之一。

例如,如果您设想一个学生班级存储有关学校中单个学生的信息。现在假设一个主题类包含关于特定主题(例如历史、地理)的详细信息。如果将Student类定义为包含Subject对象,那么可以说Student对象具有Subject对象。学科对象也构成了学生对象的一部分——毕竟,没有一个学生没有要学习的学科。因此,Student对象拥有Subject对象。

例子

定义学生类和主题类之间的聚合关系,如下所示:

public class Subject {private String name;public void setName(String name) {this.name = name;}public String getName(){return name;}}public class Student {private Subject[] studyAreas = new Subject[10];//the rest of the Student class}

  • 发表于 2021-10-11 12:00
  • 阅读 ( 301 )
  • 分类:编程

你可能感兴趣的文章

包裹(package)和java接口(interface in java)的区别

Java中的Package和Interface的主要区别在于,Package有助于对类进行有条理的分类以方便访问和维护,而Interface则有助于实现多个继承和实现抽象。 Java是最流行的编程语言之一。Java的主要优点是它支持面向对象编程。这种方法允...

  • 发布于 2020-10-18 11:01
  • 阅读 ( 567 )

聚合(aggregation)和java中的合成(composition in java)的区别

聚合(aggregation)和java中的合成(composition in java)的区别 聚合是描述“has-a”关系的两个对象之间的关联。组合是一种更具体的聚合类型,它意味着所有权。Java中聚合和组合的关键区别在于,如果包含的对象可以在没有拥有对象...

  • 发布于 2020-10-24 01:38
  • 阅读 ( 713 )

入门时应学习的10个核心java概念

...AR文件被提供给Java虚拟机执行,该虚拟机开始执行指定类中的main()程序。 ...

  • 发布于 2021-03-13 05:33
  • 阅读 ( 236 )

自然的(natural)和合成聚合物(synthetic polymers)的区别

...可以在我们的环境中自然发现的聚合物化合物。生物系统中的大多数化合物都是高分子化合物。这些天然聚合物主要存在于多糖、聚酰胺和多核苷酸三种类型中。 多糖包括由单糖单元组成的聚合物。最常见的单糖是葡萄糖、果...

  • 发布于 2021-06-29 15:49
  • 阅读 ( 649 )

应用程序编程接口(api)和java框架(framework in java)的区别

...构建安全高效的应用程序。 覆盖的关键领域 1.什么是Java中的API–定义,功能2.什么是Java中的框架–定义,功能3.API和Java中的框架的区别–主要区别的比较 关键术语 API、框架、Java 什么是java中的api(api in java)? API代表应用程序...

  • 发布于 2021-07-01 01:02
  • 阅读 ( 534 )

抽象类(abstract class)和java接口(interface in java)的区别

...以使用接口实现多重继承。 覆盖的关键领域 1.什么是Java中的抽象类-定义,功能2.什么是Java中的接口-定义,功能3.Java中抽象类和接口的区别是什么-主要区别的比较 关键术语 抽象类、接口、多重继承 什么是java中的抽象类(abstrac...

  • 发布于 2021-07-01 01:29
  • 阅读 ( 271 )

文本框(textfield)和java中的textarea(textarea in java)的区别

... 关键术语 API、AWT、GUI、Java、textfield、TextArea 什么是java中的textfield(textfield in java)? TextField是AWT中允许输入单行文本的组件。因此,我们可以使用它来创建TextField对象或组件。请参阅下面的示例程序。 Figure 1: Java program with TextFi...

  • 发布于 2021-07-01 04:06
  • 阅读 ( 287 )

罐子(jar)和战争档案(war files)的区别

...是包含Java类文件、相关元数据和资源的文件,这些文件聚合到一个文件中以执行Java应用程序,而WAR文件是包含Servlet、JSP、HTML、JavaScript和开发web应用程序所需的其他文件的文件。 Java是一种高级通用编程语言,用于开发各种领...

  • 发布于 2021-07-01 04:36
  • 阅读 ( 252 )

系统gc(system gc)和java中的运行时gc(runtime gc in java)的区别

...行垃圾收集器的两种方法。 覆盖的关键领域 1.什么是Java中的系统gc–定义,功能2.什么是Java中的运行时gc–定义,功能3.系统gc和运行时gc之间的关系是什么–关联概述4.系统gc和运行时gc之间的区别是什么–关键区别的比较 关键...

  • 发布于 2021-07-01 04:58
  • 阅读 ( 204 )

继承(inheritance)和java中的多态性(polymorphism in java)的区别

...对象以多种方式运行。 面向对象编程(OOP)是软件开发中的一种常见编程范式。它有助于使用对象对现实世界场景进行建模。Java是一种支持OOP的编程语言。类是蓝图,它有助于创建对象。类具有属性和行为。属性也称为属性,...

  • 发布于 2021-07-01 09:50
  • 阅读 ( 417 )
a5283847403
a5283847403

0 篇文章

相关推荐