java的聚合_Java聚合

Java聚合

1 什么是Java聚合

如果类具有实体引用,则称为聚合。聚集表示HAS-A关系。

例如:Employee对象包含许多信息,例如id,name,emaid等。它还包含一个名为address的对象,该对象包含地址信息,例如省份,城市,地区,邮政编码等,如下所示。

class Employee{

int id;

String name;

Address address;//Address是一个对象

...

}

以上情况,Employee包含实体引用Address,因此关系为Employee HAS-A Address。

2 为什么要使用聚合

用于代码可重用性。

3 聚合的示例

22aa032da1c47bf6225f26dc6b6296db.png

在上图中,我们在Circle类中创建了Operation类的引用。

/**

* 一点教程网 - http://www.yiidian.com

*/

//Java聚合的示例

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

4 什么时候使用聚合

当没有is-a关系时,最好使用聚合实现代码重用。

只有在is-a关系涉及对象的整个生命周期中都保持不变时,才应使用继承。否则,聚合是最佳选择。

5 聚合的实际案例

在下面示例中,雇员具有地址对象,地址对象包含其地址信息,例如省份,城市,地区,邮政编码等。在这种情况下,关系为雇员 HAS-A 地址。

Address.java:

/**

* 一点教程网: http://www.yiidian.com

* 地址类

*/

public class Address {

String province,city,area;

public Address(String province, String city, String area) {

this.province = province;

this.city = city;

this.area = area;

}

}

Emp.java:

/**

* 一点教程网: http://www.yiidian.com

* 雇员类

*/

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.province+" "+address.city+" "+address.area);

}

public static void main(String[] args) {

Address address1=new Address("广东","广州","天河区");

Address address2=new Address("北京","北京","顺义区");

Emp e=new Emp(111,"张三",address1);

Emp e2=new Emp(112,"李四",address2);

e.display();

e2.display();

}

}

输出结果为:

111 张三

广东 广州 天河区

112 李四

北京 北京 顺义区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值