对象的组合

Rectangle.java

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)
height=0;
else
this.height=height;
}
public double getHeight(){
return height;
}

}

Circle.java

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;
}
}

Geometry.java

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("图形中的矩形在圆的左侧"); 
    }
}

MainClass.java

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);
geometryTwo.showState();
geometryTwo.showState();
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值