本次进行对象的聚合的举例测试,其内功能为计算三角形和圆形的面积。
聚合就是:表示两个对象之间是整体和部分的弱关系,部分的生命周期可以超越整体。如下:实例化Person,不一定要实例化Telephone。
public class Person{
private Telephone tel; 它是has-a 组成关系,
在组成关系中,一个
private Hand hand = new Hand(); 对象将一个或者多个
....... 其它对象作为自己的成员。
}
class Telephone{
......
}
在以下完整测试中
我们会使用到四个类
1.Rectangle
2.Circle
3. Geometry
4.MainClass
_____________________________________________________________________________________________________
.
我们来看一看代码实现
.
//三角形类
package objectCoop;
public class Rectangle {
private double x, y, width, height;
public void setX(double x){
this.x = x;
}
public double getX(){
return x;
}
public void setY(double y){
this.y = y;
}
public double getY(){
return y;
}
public void setWidth(double width){
if(width <= 0){
this.width = 0;
}
else{
this.width = width;
}
}
public double getWidth(){
return width;
}
public void setHeight(double height){
if(height <= 0){
this.height = 0;
}
else{
this.height = height;
}
}
public double getHeight(){
return height;
}
}
//圆形类
package objectCoop;
public class Circle {
private double x, y, radius;
public void setX(double x){
this.x = x;
}
public double getX(){
return x;
}
public void setY(double y){
this.y = y;
}
public double getY(){
return y;
}
public void setRadius(double radius){
if(radius <= 0){
this.radius = 0;
}
else{
this.radius = radius;
}
}
public double getRadius(){
return radius;
}
}
//几何类
package objectCoop;
public class Geometry {
private Rectangle rect;
private Circle circle;
Geometry(Rectangle rect, Circle circle){
this.rect = rect;
this.circle = circle;
}
public void setCirclePosition(double x, double y){
circle.setX(x);
circle.setY(y);
}
public void setCircleRadius(double radius){
circle.setRadius(radius);
}
public void setRectanglePosition(double x, double y){
rect.setX(x);
rect.setY(y);
}
public void setRectangleWidthAndHeight(double w, double h){
rect.setWidth(w);
rect.setHeight(h);
}
public void showState(){
double circleX = circle.getX();
double rectX = rect.getX();
if((rectX - circleX) == (circle.getRadius() * 2)){
System.out.println("图形中的矩形在圆的右侧");
}
if((circleX - rectX) == rect.getWidth()){
System.out.println("图形中的矩形在圆的右侧");
}
}
}
//主类
package objectCoop;
public class MainClass {
public static void main(String[] args){
Rectangle rect1 = new Rectangle(), rect2 = new Rectangle();
Circle circle1 = new Circle(), circle2 = new Circle();
Geometry geometryOne, geometryTwo;
geometryOne = new Geometry(rect1, circle1);
geometryOne.setRectanglePosition(30, 40);
geometryOne.setRectangleWidthAndHeight(120, 80);
geometryOne.setCirclePosition(150, 30);
geometryOne.setCircleRadius(60);
geometryTwo = new Geometry(rect2, circle2);
geometryTwo.setRectanglePosition(160, 160);
geometryTwo.setRectangleWidthAndHeight(120, 80);
geometryTwo.setCirclePosition(40, 30);
geometryTwo.setCircleRadius(60);
geometryOne.showState();
geometryTwo.showState();
}
}
看完这篇文章,你是否对对象的聚合又有了更深的了解呢?