10.12 定义Myrectangle类,包含:
更新浏览器两个名为x和y的double 型数据域,表明矩形的中心点,这两个数据域都带有get和t方法(假设这个矩形的边和x和y轴平行);
带get和t方法的数据域width和height.
一个无参构造方法,,该方法创建一个(x,y)的值为(0,0)且width和height的默认值为1.
资不抵债一个构造方法,创建带制定的x,y,width,height的矩形。
方法getArea()返回矩形的面积。
方法getPrimeter()返回矩形的周长。走出梨花村
如果给定的点(x,y)在矩形内,那么方法contains(double x,double y)返回true.
如果给定的矩形在这个矩形内,那么方法contains(Myrectangle2D r)返回true。
如果给定的矩形和这个矩形重叠,那么方法overlaps(Myrectangle2D r)返回true.
画出该类的UML图,实现这个类。
代码为:
class MyRectangle2D{
double x=0,y=0;//x,y表示矩形中心点
double width=1,height=1;
public double getX(){
return x;
}
public double getY(){
return y;
}
public void tX(double x){
this.x=x;
}
public void tY(double y){
this.y=y;
}
public double getWidth(){
return width;
}广东煲仔饭的做法
public void tWidth(double width){
this.width=width;
}
public double getHeight(){
return height;
}太原之战
public void tHeight(double height){
this.height=height;
}
MyRectangle2D(double x,double y,double width,double height){
this.x=x;
this.y=y;
this.width=width;
this.height=height;
}
public double getArea(){
return width*height;
}
public double getPrimeter(){
return 2*(width+height);
}
喝可乐会变黑吗public boolean contains(double x,double y){
return x<width&&y<height?true:fal;
}
public boolean contains(MyRectangle2D r) {
return contains(r.x - r.width / 2, r.y + r.height / 2) &&
contains(r.x - r.width / 2, r.y - r.height / 2) &&
contains(r.x + r.width / 2, r.y + r.height / 2) &&
contains(r.x + r.width / 2, r.y - r.height / 2);
轻度痤疮图片 }//判断包含的条件
public boolean overlaps(MyRectangle2D r) {
return Math.abs(this.x - r.x) <= (this.width + r.width) / 2 &&
Math.abs(this.y - r.y) <= (this.height + r.height) / 2;
} //判断重叠的条件
public static void main(String[] args){
MyRectangle2D r1=new MyRectangle2D(2,2,5.5,4.9);
System.out.println("面积为:"+r1.getArea()+" 周长为:"+r1.getPrimeter());
System.out.println("点(3,3)在矩形r1内吗(是为true,不是为否)? "+r1.contains(3, 3));红薯面窝窝头
System.out.println("给定的矩形在矩形r1内吗(是为true,不是为否)? "+r1.contains(new MyRectangle2D(4,5,10.5,3.2)));
System.out.println("给定的矩形和矩形r1重叠吗(是为true,不是为否)? " +r1.overlaps(new MyRectangle2D(3,5,2.3,5.4)));
}
}