java聚合,组合的理解

阅读: 评论:0

java聚合,组合的理解

java聚合,组合的理解

聚合

一:基本概念:

聚合是关联的一种属性,代表了两个对象之间的归属关系。即为一个类中有一个类的实体引用(类中的类)。
聚合的主要特点:

  1. 聚合表示HAS-A关系 例如:
class Hello{ 		int i; 		Address World;} 
  1. 这里Hello不仅包括自己的基本对象,还包括了另一个类对象world。Hello HAS-A World
  2. 聚合是一种单向关系。即Hello里面可以有World,但是World里面不能有Hello;
  3. 聚合的关系是地址关系

二:为什么要使用聚合

为了实现代码重用
具体实例:

public class Circle {double radius;public Circle(double radius) {this.radius = radius;}double square(double radius) {return radius*radius*3.14;}
}

上面的代码创建了一个Circle类,来实现圆的面积计算

package helloworld;public class aggregation {Circle circle;public aggregation(Circle circle) {this.circle = circle;}void display() {System.out.println("The circle square is "+circle.square(circle.radius));}public static void main(String[] args) {Circle newCircle = new Circle(1);aggregation sq = new aggregation(newCircle);sq.display();}
}

在这个代码块中可以看到,aggregation中创建了一个Circle类,通过在aggregation类里面的操作修改Circle类
得到的结果如下:

The circle square is 3.14

组合

一:基本概念

如果一个对象只归属于一个聚集对象,那么它和聚集对象之间的关系就成为组合。
组合是一种聚合的限制形式,使用组合关系的两个类相互依赖,并且有以下特征:

  1. 代表part-of关系,意思是一个类是另一个类的一部分
  2. 在组合的关系中,两个实例相互依赖,一个对象必须依赖另一个对象
  3. 组合是把该类当成另一个类的组合成分,从而允许新类直接复用该类的public方法。
  4. 聚合的关系是内容关系

二:具体实例

public class Animal {public void name() {System.out.print("我是");}
}

Animal是一个类

public class Bird {public Animal kind;public Bird(Animal kind) {this.kind = kind;}public void names() {kind.name();}public void fly() {System.out.println("鸟,在天空飞翔");}
}

Bird是将Animal类组合到自己的类里面

package helloworld;
public class WhatAnimal {public static void main(String[] args) {// TODO Auto-generated method stubAnimal a = new Animal();Bird b  = new Bird(a);b.names();b.fly();}
}

对上面两类的使用调用得到下面的结果:

我是鸟,在天空飞翔

聚合与组合的区别

聚合:聚合就是一种类包括一种类,但是如果没了这个类原来的类也是可以使用的
组合:组合就是一种类和一种类是相互依赖联系的,如果一个类不能使用,那么类就没有存在的意义。

本文发布于:2024-02-01 13:23:54,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170676503336907.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:组合   java
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23