聚合可以称为两个类之间的关联,成员函数和数据成员可以在其他类中使用。这种关联是一种所谓的“定向关联”。这种关系就是“HAS-A”关系。这意味着如果我们有一个班级学生并且该学生有科目。在本例中,我们单独定义了科目类,有自己的特点和成员函数,而学生类有自己的成员函数和数据成员。在这种情况下,这些类与“HAS-A”关系相关联。在本主题中,我们将了解有关 JAVA 中聚合的更多信息。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
Java 聚合语法
聚合的语法可以描述为代码结构:
class Student{ int rollnumber; String firstname; String lastname; Subjectsubject;//Here subject is a different class containing its own members functions and data members. ... //**..Code snippet..** … }
说明:在上面的语法中,我们可以看到有两个名为“student”和“subject”的类。这两者通过聚合关系链接。学生有科目,因此这证明了“HAS-A”关系的合理性,就像任何学生都有科目一样。所以该科目的所有成员函数都可以在学生类下调用。这进一步传播了数据可重用的特性。
为什么我们需要 Java 中的聚合?
JAVA 中此功能的主要用途是“代码可重用性”。举个例子就可以很好地理解这一点。
例如,有两个类,名为“customer”和“car”。汽车的一些预定义属性存储在“汽车”类中,例如发动机功率、颜色、动力转向、尺寸等等。而“客户”类则存储客户的姓名、电话号码、地址等特征。因此,如果有客户来到商店买车,那么店主只需使用“汽车”类。这样,我们就可以为到达商店的多个顾客重复使用代码。
此功能通过使用模块化方法降低了代码复杂性并提高了代码可见性。
Java 中聚合是如何工作的?
聚合基本上是两个类之间的关联,如上所述。这是通过在JAVA程序中定义两个类来实现的。这两个类中,其中一个将被重用。例如,“A 类”和“B 类”就是类别。 “B 类”要被重用,所以这个类会在“A 类”中实例化。
- 问题:如何实例化?
- 答:使用 ClassBcb;
然后我们可以使用对象“cb”来调用“A类”中“B类”的成员函数。这一特性允许人们遵循模块化、封装和数据重用的面向对象特性。
在 Java 中实现聚合的步骤
以下是提到的步骤:
步骤#1
class Application{ int finding_square(int number){ return number*number; // refer step 1 in explanation section. } } class Square{
步骤#2
Application app; //aggregationfeature is initiated by instantiating a class defined above which needs to be re used. double area_of_square(int side){
步骤#3
app=new Application(); int area=app.finding_square(side);//code reusability (i.e. delegates the method call)
步骤#4
return area; } public static void main(String args[]){ Square sq=new Square(); double result=sq.area_of_square(5);
步骤#5
System.out.println(result);
步骤#6
} }
说明
- 第 1 步: 我们在这里定义了一个函数,可以在多个地方使用,例如:如果我们想要找出正方形、圆形的面积或需要找出数字的平方,我们可以在所有提到的情况下一次又一次地使用这个函数。这就解释了代码可重用的特点。
- 第 2 步: 这是将用于实现上面定义的类的代码的载体类。这是在聚合的帮助下完成的。聚合在下面的语句中实现。
- 第 3 步: 在此,我们定义了一个函数来计算正方形的面积。该函数利用了前一个类。我们创建了一个名为“app”的新对象,并在下面的语句中分配了一个默认构造函数。
- 第四步:在这一步中,我们调用前一个类的成员函数,并将值传递给名为“side”的函数。由于我们从应用程序类中提取函数,因此我们使用了“app”,然后给出了函数名称。
- 第 5 步: 我们将发送 5 个作为旁白。使用这个 5,正方形的面积将通过上面定义的函数计算出来,并将被捕获在名为“result”的变量下。
- 第 6 步: 最后,我们打印包含正方形面积的“result”变量。在本例中,正方形的面积为 25。因此 25 将打印在输出屏幕上。由于我们以浮点数据类型声明了“结果”变量,因此我们应该得到浮点结果,即 25.0,而不是 25。
输出:
我们将使用命令“javac”以及文件名后跟扩展名 .java 来编译 JAVA 代码。编译后,创建了该类的对象。该目标文件包含 JRE(JAVA 运行时环境)可以理解的中间代码,然后将其转换为机器语言。该机器语言代码流被传递到系统以生成输出作为回报。
如果我们对代码进行任何更改,那么我们将不得不重新编译代码以生成另一个目标文件。然后,我们使用命令“java”和文件名来执行该文件。这里我们不必给出扩展名,因为我们在这里调用可执行文件,而不是 JAVA 文件。可执行(目标)文件的默认名称与 JAVA 文件相同。因此我们得到了 float 数据类型的正方形面积。
结论
因此,JAVA 语言中的聚合是开发人员大量使用的关键功能之一。由于它支持代码可重用的特性,从而减少了代码的体积。代码看起来更清晰,实现和维护也变得更加容易。最好在处理 JAVA 项目时使用这个概念。
以上是Java 中的聚合的详细内容。更多信息请关注PHP中文网其他相关文章!

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于平衡二叉树(AVL树)的相关知识,AVL树本质上是带了平衡功能的二叉查找树,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要整理了Stream流的概念和使用的相关问题,包括了Stream流的概念、Stream流的获取、Stream流的常用方法等等内容,下面一起来看一下,希望对大家有帮助。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver CS6
视觉化网页开发工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器