Java 提供了可以被视为现实生活和编程的对象之间的不同关系。有时候很难理解,或者我们可以说是实现关系。所以java向用户提供了组合和聚合关系。在组合中,我们可以建立一种我们称之为“属于”的关系;从逻辑上讲,我们可以说一个物体比其他物体大。在聚合中,我们可以构建一种称为“has a”关系的关系,其中每个对象都彼此独立地运行。我们认为聚合关系是弱关联,而组合关系是我们认为强关联。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
组合语法如下:
public class building { private final Room room; public building () { room = new room (); } } class Room { }
说明:
聚合语法如下:
public class student { private List students; public student () { students = new list_students(); } } class student { }
说明:
下面显示了组合和聚合在 Java 中的工作原理:
组合用于指定关系的“属于”。这意味着其中一个项目在智能上比其他项目更大,或者我们可以说对象。例如,将房间视为建筑物的一部分,或者我们可以说建筑物有一个房间。所以从根本上来说,无论我们称之为“属于”还是“有一个”都只是一个视角问题。
基本上,根据包含对象声明它的事实,组合是一种很强的关系。这样,当我们删除对象生命周期时,就意味着当我们删除父节点时,它会自动删除子节点。例如,我们可以考虑何时破坏房间;然后建筑物也被摧毁。请注意,这并不意味着包含对象不能与其任何部分一起存在。例如,我们可以摧毁建筑物内的所有隔板,从而消除房间。不管怎样,这种结构无论如何都会存在。就基数而言,包含文章可以根据需要包含任意多个部分。尽管如此,整个零件必须有一个精确的隔间。
聚合在 Java 中的工作原理如下:
我们知道构图“有”关系。同样,聚合也有“Has a”关系。基本区别在于聚合确实包含父节点或对象。在这种关系中,每个对象都是相互独立的。例如,我们可以考虑一辆汽车及其不同的车轮,我们可以将同一个车轮安装到另一辆车上,然后它的工作文件没有任何问题。我们知道没有轮子的汽车是没有用的,所以这就是我们组装对象的所有部分的原因,这就是聚合关系。
下面给出组合和聚合关系的示例:
代码:
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); } } }
说明:
输出:
代码:
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 中的组合和聚合的详细内容。更多信息请关注PHP中文网其他相关文章!