java程序设计第十章十一题参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10.11.定义一个Circle2D类,包括:

两个带有get方法的名为x和y的double型数据域,表明园的中心点;

一个带get方法的数据域radius;

一个无参数构造方法,该方法创建一个中心点(x,y)值为(0,0)且radius为1的默认圆;

一个构造方法,创建指定的x,y和radius的圆;

一个返回圆面积的方法getArea();

一个返回圆周长的方法getPerimeter();

如果给定的点(x,y)在这个圆内,那么方法contains(doubel x, double y)返回true;

如果给定的圆在这个圆内,那么方法contains(Circle2D circle)返回true;

如果给定的圆和这个圆重叠,那么方法overlaps(Circle2D circle)返回true。

实现这个类。编写测试程序,创建一个Circle2D对象c1,其中心点在(2,2),半径为5.5,显示它的面积和周长。同时,检查点(3,3)

是否位于这个圆的内部。然后,再检查另一个圆(中心点为(4,5),半径为10.5)是否位于这个圆的内部。之后,再检查另一个圆(中心点为(3,5),

半径为2.3)是否和这个圆重叠。

代码:

class Circle2D{

double x=0,y=0,radius=1;

public double getX(){

return x;

}

public double getY(){

return y;

}

public double getRadius(){

return radius;

}

Circle2D(){

}

Circle2D(double x,double y,double radius){

this.x=x;

this.y=y;

this.radius=radius;

}

public double getArea(){

return radius*radius*Math.PI;

}

public double getPrimeter(){

return 2*radius*Math.PI;

}

public boolean contains(double x,double y){

double d=Math.pow(x*x+y*y,0.5);

return d

}

public boolean contains(Circle2D circle){

return this.radius>circle.radius&&this.getArea()>circle.getArea()?true:false;

}

public boolean overlaps(Circle2D circle){

return this.radius+circle.radius<2*this.radius?true:false;

}

public static void main(String[] args){

Circle2D c1=new Circle2D(2,2,5.5);

c1.getArea();

c1.getPrimeter();

c1.contains(3, 3);

Circle2D c2=new Circle2D(4,5,10.5);

c1.contains(c2);

Circle2D c3=new Circle2D(3,5,2.3);

c1.contains(c3);

System.out.println("c1的面积为:"+c1.getArea()+" c1的周长为:"+c1.getPrimeter());

System.out.println("点(3,3)在圆c1内吗(是为true,不是为否)?"+c1.contains(3, 3));

System.out.println("圆c2在圆c1内吗(是为true,不是为否)?"+c1.contains(c2));

System.out.println("圆c3和圆c1重叠吗(是为true,不是为否)?" +c1.overlaps(c3));

}

}

相关文档
最新文档