欢迎来到天天文库
浏览记录
ID:62033653
大小:15.50 KB
页数:2页
时间:2021-04-15
《java语言程序设计第十章十二题参考答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、10.12定义Myrectangle类,包含:两个名为x和y的double型数据域,表明矩形的中心点,这两个数据域都带有get和set方法(假设这个矩形的边和x和y轴平行);带get和set方法的数据域width和height.一个无参构造方法,,该方法创建一个(x,y)的值为(0,0)且width和height的默认值为1.一个构造方法,创建带制定的x,y,width,height的矩形.方法getArea()返回矩形的面积。方法getPrimeter()返回矩形的周长.如果给定的点(x,y)在矩形内,那么方法contains(doublex,double y)返回true.如
2、果给定的矩形在这个矩形内,那么方法contains(Myrectangle2Dr)返回true。如果给定的矩形和这个矩形重叠,那么方法overlaps(Myrectangle2Dr)返回true.画出该类的UML图,实现这个类。代码为:classMyRectangle2D{ doublex=0,y=0;//x,y表示矩形中心点 doublewidth=1,height=1;publicdoublegetX(){return x;}public doublegetY(){ return y;}publicvoid setX(doublex){this.x=x;}publi
3、cvoidsetY(doubley){ this。y=y;}publicdoublegetWidth(){ return width; }public voidsetWidth(double width){this.width=width;}publicdoublegetHeight(){returnheight;}publicvoid setHeight(doubleheight){ this.height=height;}MyRectangle2D(doublex,double y,doublewidth,double height){ this.x=x; this.y=y
4、; this.width=width;this。height=height;}public doublegetArea(){ returnwidth*height;}publicdoublegetPrimeter(){ return2*(width+height);}public booleancontains(doublex,doubley){ returnx<width&&y<height?true:false;}publicboolean contains(MyRectangle2D r){ returncontains(r.x— r。width/ 2,r.y + r
5、。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); }//判断包含的条件publicboolean overlaps(MyRectangle2D r){ returnMath。abs(this。x -r.x)<=(this。width+r.width)/2&&Math.abs(this.y - r。y)〈=(this.height+ r。height)
6、 /2; } //判断重叠的条件publicstaticvoidmain(String[]args){ MyRectangle2Dr1=newMyRectangle2D(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,不是为否)?”+
7、r1.contains(newMyRectangle2D(4,5,10.5,3。2)));System.out.println("给定的矩形和矩形r1重叠吗(是为true,不是为否)? "+r1.overlaps(newMyRectangle2D(3,5,2.3,5。4))); }}
此文档下载收益归作者所有