首页 > Java > java教程 > Java 中的组合和聚合

Java 中的组合和聚合

王林
发布: 2024-08-30 15:15:15
原创
1081 人浏览过

Java 提供了可以被视为现实生活和编程的对象之间的不同关系。有时候很难理解,或者我们可以说是实现关系。所以java向用户提供了组合和聚合关系。在组合中,我们可以建立一种我们称之为“属于”的关系;从逻辑上讲,我们可以说一个物体比其他物体大。在聚合中,我们可以构建一种称为“has a”关系的关系,其中每个对象都彼此独立地运行。我们认为聚合关系是弱关联,而组合关系是我们认为强关联。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

组合和聚合的语法

组合语法如下:

public class building {
private final Room room;
public building () {
room = new room ();
}
}
class Room { }
登录后复制

说明:

  • 在上面的语法中,我们考虑了一个建筑的例子,所以首先,我们创建一个名为building的类,房间是建筑的强制性部分,如上面的语法所示。
  • 这是组合关系的语法,这里我们展示它属于关系。

聚合语法如下:

public class student {
private List students;
public student () {
students = new list_students();
}
}
class student { }
登录后复制

说明:

  • 在上面的语法中,我们考虑学生示例,其中首先我们创建一个名为学生的公共班级,然后,我们创建学生列表,因为学生可以是 0 或更多,如下所示以上语法。
  • 这里我们还展示了对象之间的“has a”关系。

Java 中组合和聚合如何工作?

下面显示了组合和聚合在 Java 中的工作原理:

组合用于指定关系的“属于”。这意味着其中一个项目在智能上比其他项目更大,或者我们可以说对象。例如,将房间视为建筑物的一部分,或者我们可以说建筑物有一个房间。所以从根本上来说,无论我们称之为“属于”还是“有一个”都只是一个视角问题。

基本上,根据包含对象声明它的事实,组合是一种很强的关系。这样,当我们删除对象生命周期时,就意味着当我们删除父节点时,它会自动删除子节点。例如,我们可以考虑何时破坏房间;然后建筑物也被摧毁。请注意,这并不意味着包含对象不能与其任何部分一起存在。例如,我们可以摧毁建筑物内的所有隔板,从而消除房间。不管怎样,这种结构无论如何都会存在。就基数而言,包含文章可以根据需要包含任意多个部分。尽管如此,整个零件必须有一个精确的隔间。

聚合在 Java 中的工作原理如下:

我们知道构图“有”关系。同样,聚合也有“Has a”关系。基本区别在于聚合确实包含父节点或对象。在这种关系中,每个对象都是相互独立的。例如,我们可以考虑一辆汽车及其不同的车轮,我们可以将同一个车轮安装到另一辆车上,然后它的工作文件没有任何问题。我们知道没有轮子的汽车是没有用的,所以这就是我们组装对象的所有部分的原因,这就是聚合关系。

Java 中的组合和聚合示例

下面给出组合和聚合关系的示例:

示例#1:组合

代码:

import java.io.*;
import java.util.*;
class Lib
{
public String name_book;
public String bk_author;
Lib(String name_book, String bk_author)
{
this.name_book = name_book;
this.bk_author = bk_author;
}
}
class Library
{
private final List<Lib> Lib_books;
Library (List<Lib> Lib_books)
{
this.Lib_books =Lib_books;
}
public List<Lib> book_details(){
return Lib_books;
}
}
class composition
{
public static void main (String[] args)
{
Lib book1 = new Lib("Database management", "Rajiv Chopra ");
Lib book2 = new Lib("MySql", "Rajiv Chopra l");
Lib book3 = new Lib("oracle", "Donald Burleson");
List<Lib> Lib_books = new ArrayList<Lib>();
Lib_books.add(book1);
Lib_books.add(book2);
Lib_books.add(book3);
Library library = new Library(Lib_books);
List<Lib> bks = library.book_details();
for(Lib bk : bks){
System.out.println("name_book : " + bk.name_book + " and "
+" bk_author : " + bk.bk_author);
}
}
}
登录后复制

说明:

  • 在上面的例子中,我们尝试用java实现组合关系。
  • 我们使用以下快照来说明上述程序的最终输出。

输出:

Java 中的组合和聚合

示例#2:聚合关系

代码:

import java.io.*;
import java.util.*;
class stud_class
{
String stud_name;
int roll_no ;
String stud_dept;
stud_class(String stud_name, int roll_no, String stud_dept)
{
this.stud_name = stud_name;
this.roll_no = roll_no;
this.stud_dept = stud_dept;
}
}
class Depofcollege
{
String stud_name;
private List<stud_class> students;
Depofcollege(String stud_name, List<stud_class> students)
{
this.stud_name = stud_name;
this.students = students;
}
public List<stud_class> getStudentsDetails()
{
return students;
}
}
class college
{
String collegeName;
private List<Depofcollege> departments;
college(String collegeName, List<Depofcollege> departments)
{
this.collegeName = collegeName;
this.departments = departments;
}
public int totalstudents()
{
int noOfStudents = 0;
List<stud_class> students;
for(Depofcollege dept : departments)
{
students = dept.getStudentsDetails();
for(stud_class s : students)
{
noOfStudents++;
}
}
return noOfStudents;
}
}
class aggregation
{
public static void main (String[] args)
{
stud_class stud1 = new stud_class("Sameer", 5, "IT");
stud_class stud2 = new stud_class("Pooja", 6, "IT");
stud_class stud3 = new stud_class("Sanddep", 8, "Mech");
stud_class stud4 = new stud_class("Jenny", 2, "Mech");
List <stud_class> i_students = new ArrayList<stud_class>();
i_students.add(stud1);
i_students.add(stud2);
List <stud_class> me_students = new ArrayList<stud_class>();
me_students.add(stud3);
me_students.add(stud4);
Depofcollege IT = new Depofcollege("IT", i_students);
Depofcollege Mech = new Depofcollege("Mech", me_students);
List <Depofcollege> departments = new ArrayList<Depofcollege>();
departments.add(IT);
departments.add(Mech);
college college= new college("MIT", departments);
System.out.print("Count of students: ");
System.out.print(college.totalstudents());
}
}
登录后复制

说明:

  • 在上面的例子中,我们尝试用java实现聚合关系。
  • 我们使用以下快照来说明上述程序的最终输出。

输出:

Java 中的组合和聚合

结论

我们从上面的文章中看到了组合和聚合的基本语法,也看到了组合和聚合的不同示例。从这篇文章中,我们了解了如何以及何时使用 Java 中的组合和聚合。

以上是Java 中的组合和聚合的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板