对象的组合的简单例题

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(30,40);

geometrytwo.setRectangleWidthAndHeight(120,80);

geometrytwo.setCirclePosition(40,30);

geometrytwo.setCircleRadius(60);

geometryOne.showState();

geometrytwo.showState();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值