Java中的聚合是什么?为什么需要聚合?
时间:2020-02-23 14:33:54 来源:igfitidea点击:
在编写Java程序时,如果要使用其引用将一个类链接到另一个类,则可以使用Java中的Aggregation。
因此,让我们学习聚合如何在Java中工作。
什么是聚合(Aggregation)?
在了解什么是聚合之前,让我们学习Java中的关联。
关联被称为通过它们的对象建立的两个单独的类之间的关系。
它可以是一对一,一对多,多对一,多对多。
让我们用一个例子来了解关联。
package theitroad; class School { private static String name; //bank name School(String name) { this.name = name; } public static String getSchoolName() { return name; } } //employee class class Student { private String name; //employee name Student(String name) { this.name = name; } public String getStudentName() { return this.name; } } //Association between both the //classes in main method public class Association { public static void main (String[] args) { School newSchool = new School("Java Class"); Student stu = new Student("Vian"); System.out.println(stu.getStudentName() + " is a student of " + School.getSchoolName()); } }
Vian是Java班的学生
现在,让我们看看什么是Java中的聚合。
聚集实际上是一种特殊的关联形式。
这意味着它被称为两个类(如Association)之间的关系。
但是,这是一个方向关联,这意味着它严格遵循单向关联。
这代表了HAS-A关系。
它被认为是协会关系的一种更专业的版本。
Aggregate类包含对另一个类的引用,并且据说具有该类的所有权。
所引用的每个类均被视为Aggregate类的一部分。
现在说,例如,如果A类包含对B类的引用,而B类包含对A类的引用,则无法确定明确的所有权,并且该关系仅是Association中的一种。
让我们看一下这个例子:
package theitroad; class Address { int streetNum; String city; String state; String country; Address(int street, String c, String st, String coun) { this.streetNum=street; this.city =c; this.state = st; this.country = coun; } } class Employee { int EmployeeID; String EmployeeName; //Creating HAS-A relationship with Address class Address EmployeeAddr; Employee(int ID, String name, Address addr){ this.EmployeeID=ID; this.EmployeeName=name; this.EmployeeAddr = addr; } } public class Aggregation { public static void main(String args[]){ Address ad = new Address(2, "Bangalore", "Karnataka", "San Franceco"); Employee obj = new Employee(1, "Suraj", ad); System.out.println(obj.EmployeeID); System.out.println(obj.EmployeeName); System.out.println(obj.EmployeeAddr.streetNum); System.out.println(obj.EmployeeAddr.city); System.out.println(obj.EmployeeAddr.state); System.out.println(obj.EmployeeAddr.country); } }
现在我们可能有这个问题。
为什么要在Java中确切使用此聚合?
为什么需要聚合?
我们需要聚合的主要原因是为了保持代码的可重用性。
例如,如果我们创建与上述示例相同的类,则需要维护当前雇员的详细信息。
并且,我们不必一次又一次使用相同的代码,而是在定义它们时使用类的引用。