java中聚合是一种特殊的关联形式,它是两个类之间的关系,是一种HAS-A关系,是一种单向关联。如果类具有实体引用,则称为聚合。

举个例子:在一个有这么两个类Studentclass和Addressclass,它们分别代表学生和地址。Studentclass类中包含有许多信息,比如:studentId、studentName等等,还包含一个Addressclass类。其中Addressclass类中有拥有自己的信息,如国家,省会,城市等。如下所示:class Address

{

String country;

String province;

String city;

.....

}

class StudentClass

{

int studentId;

String studentName;

//创建与Addressclass类的HAS-A关系

Address studentAddr;

StudentClass(int id, String name, Address addr){

......

}

}

在这种情况下,Studentclass类具有实体引用Addressclass类;且

每个学生都有具体一个地址,所以学生和地址之间的关系是一个Has-A关系,即:Student Has-A Address

为什么要使用聚合?

因为可以维护代码的可重用性。

打个比方,在上例的两个类Student和Address的基础上,还有用了另外两个类College,Staff,它们代表学院和工作人员。

为了让学生、学院地址和工作人员都具有地址,现在,我们不需要一次又一次地使用相同的代码;我们只需要在定义每个类时引用Address类就行。

因此,我们可以通过使用聚合关系来提高代码的可重用性。

聚合示例class Address {

String country,province,city;

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

this.country = country;

this.province = province;

this.city = city;

}

}

public class StudentClass{

int id;

String name;

Address address;

public StudentClass(int id, String name,Address address) {

this.id = id;

this.name = name;

this.address=address;

}

void display(){

System.out.println("="+id+",name="+name);

System.out.println("地址是: "+address.country+","+address.province+","+address.city+"\n");

}

public static void main(String[] args) {

Address address1=new Address("China","Hubei","Wuhan");

Address address2=new Address("China","Hunan","Changsha");

StudentClass Student1=new StudentClass(150,"小明",address1);

StudentClassStudent2=new StudentClass(151,"小华",address2);

Student1.display();

Student2.display();

}

}

效果图:

总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。

java的聚合_java中聚合是什么相关推荐

  1. java 聚合_Java 8 聚合操作详解

    Oracle在2014年3月19日如期发布了Java 8.Java 8版本被认为是具有里程碑意义的一个版本,Oracle在该版本中添加了许多新特性,包括Lambda表达式.方法引用.加强了安全等等. ...

  2. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  3. java show过时_Java中show() 方法被那个方法代替了? java编程 显示类中信

    你说的show是swing里的吧,在老版本中Component这个超类确实有show这个方法,而且这个方法也相当有用,使一个窗口可见,并放到最前面.在jdk5.0中阻止了这个方法,普遍用setVisi ...

  4. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  5. java 序列化实例_Java中的序列化与反序列化实例

    创建的字节流与平台无关.因此,在一个平台上序列化的对象可以在另一个平台上反序列化. 为了使Java对象可序列化,我们实现java.io.Serializable可序列化接口. ObjectOutput ...

  6. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

  7. java 代码锁_Java中的Lock锁

    Lock锁介绍: 在java中可以使用 synchronized 来实现多线程下对象的同步访问,为了获得更加灵活使用场景.高效的性能,java还提供了Lock接口及其实现类ReentrantLock和 ...

  8. java wait 参数_java中wait()和join()方法的区别是什么

    java中wait()和join()方法的区别是:存在不同的java包中:wait()方法用于线程间通信,它所施加的等待状态的线程可以被启动:join()方法用于在多个线程之间添加排序,它所施加的等待 ...

  9. java thread join()_Java中Thread.join()的使用方法

    概要 本文分三个部分对thread.join()进行分析: 1. join() 的示例和作用 2. join() 源码分析 3. 对网上其他分析 join() 的文章提出疑问 1. join() 的示 ...

最新文章

  1. 海信电视root工具_海信璀璨系列家电:一次购买便能享受全方位智能家居生活...
  2. opencv videoio无法读取rstp_使用一行Python代码从图像读取文本
  3. 7.4.5 鲁棒主成分分析 PCA
  4. IBASE Read buffer invalidate when locked
  5. 06构造方法和文件读取
  6. 5.Django|模型层--多表关系
  7. 某8位微型计算机地址码为18位,计算机组成原理复习题.doc
  8. python与Labview进行数据通信(UDP)
  9. jad的用法(反编译某目录下所有class)
  10. mac android手机录屏软件,Mac录屏软件推荐,比Quicktime好用!
  11. cmake-3.17 cmake-3.18.2下载
  12. 免费企业邮箱: Google企业邮箱的申请
  13. 如何看待 12 月 26 日发布的华为云 WeLink 企业智能工作平台?能对标得过企业微信和钉钉吗?
  14. python编写MySQL数据库查询/操作软件代码
  15. Vortex: 一种基于RISC-V指令集自定义扩展的开源GPGPU架构
  16. 个人计算机和家用计算机的区别,量子计算机和普通计算机的区别
  17. Android地图集成以及基础功能
  18. JS数组定义,遍历,判断是否是数组
  19. 基于 FPGA Vivado 信号发生器设计(附源工程)
  20. Kof 2002 ps2 android,拳皇2002PS2版-公测版

热门文章

  1. Bootstrap学习文档(三)
  2. 通信原理简明教程 | 物联网通信技术简介
  3. 牛客练习赛43 回顾
  4. vue之vue的生命周期、swiper、自定义组件的封装、自定义指令、过滤器、单文件组件及vue-cli
  5. JS 滚动屏幕至顶端
  6. 引流虚拟主机和服务器,免费虚拟主机能抢到吗
  7. 有隔板高效过滤器和无隔板高效过滤器区别在哪里
  8. 计算机a类会议论文难度,中国计算机学会推荐国际学术会议和期刊(A类)2019年...
  9. 常见seo名词解释二(网站SEO常见术语说明)-从SEO到优化实战大师
  10. echarts 设置仪表盘数字的位置_【Python代替Excel】11:用Python做数据仪表盘