其他
【Java编程教程】详解Java 聚合
整理:Java面试那些事儿
如果一个类有一个实体引用,它被称为聚合。聚合表示 HAS-A 关系。
考虑一种情况,Employee 对象包含许多信息,如 id、name、emailId 等。它包含一个名为 address 的对象,它包含自己的信息,如城市、州、国家、邮政编码等,如下所示。
class Employee{
int id;
String name;
Address address;//地址是一个类
...
}
在这种情况下,Employee 有一个实体引用地址,所以关系是 Employee HAS-A 地址。
# 为什么要使用聚合?
为了代码的可重用性。
# 聚合的简单示例
在这个例子中,我们在 Circle 类中创建了 Operation 类的引用。
class Operation{
int square(int n){
return n*n;
}
}
class Circle{
Operation op;//聚合
double pi=3.14;
double area(int radius){
op=new Operation();
int rsquare=op.square(radius);//代码可重用性(即委托方法调用)
return pi*rsquare;
}
public static void main(String args[]){
Circle c=new Circle();
double result=c.area(5);
System.out.println(result);
}
}
输出:
78.5
# 什么时候使用聚合?
# 理解有意义的聚合示例
在这个例子中,Employee 有一个地址对象,地址对象包含它自己的信息,如城市、州、国家等。在这种情况下,关系是 Employee HAS-A 地址。
Address.java
public class Address {
String city,state,country;
public Address(String city, String state, String country) {
this.city = city;
this.state = state;
this.country = country;
}
}
Emp.java
public class Emp {
int id;
String name;
Address address;
public Emp(int id, String name,Address address) {
this.id = id;
this.name = name;
this.address=address;
}
void display(){
System.out.println(id+" "+name);
System.out.println(address.city+" "+address.state+" "+address.country);
}
public static void main(String[] args) {
Address address1=new Address("gzb","UP","india");
Address address2=new Address("gno","UP","india");
Emp e=new Emp(111,"varun",address1);
Emp e2=new Emp(112,"arun",address2);
e.display();
e2.display();
}
}
输出:
111 varun
gzb UP india
112 arun
gno UP india
扫码进群记得备注:城市、昵称和技术方向。