6.1 1) (几何:Circle2D 类)定义包含以下内容的 Circle2D 类:
■ 两个名为x 和y 的双精度数据字段使用getter 方法指定圆心。
■ 具有getter 方法的数据字段radius半径。
■ 一个无参数构造函数,它创建一个默认圆心(x, y), (0, 0) 表示, 半径为1。
■ 创建具有指定x、y 和半径的圆的构造函数。
■ getArea() 方法返回圆的面积。
■ 返回圆的周长的getPerimeter() 方法。
■ 一个方法 contains(double x, double y) 如果指定的点 (x, y) 在这个圆内,则返回 true(参见图 10.21a)。 (提示:点到圆心点的距离是否小于等于当前圆半径)
■ contains(Circle2D circle) 如果另外圆在这个圆内,则返回 true(见图 10.21b)。(提示:两个圆心点之间的距离加上传入参数圆的半径是否小于等于当前圆半径) )
一个方法overlaps(Circle2D circle),如果指定的圆与这个圆重叠,则返回true(见图10.21c)。(判断方法:两个圆心点之间的距离小于等于两个圆的半径之和)
编写一个测试程序,创建一个Circle2D对象c1(new Circle2D(2, 2, 5.5)),显示它的面积和周长,并显示c1.contains(3,3),c1.contains(new Circle2D(4 , 5, 10.5)) 和 c1.overlaps(new Circle2D(3, 5, 2.3)) 的结果
(提示:由于总是需要计算两点距离,建议定义一个静态方法计算两点距离,计算方法Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)))
输入格式:
2, 2, 5.5
输出格式:
c1 contains point:true
c1 contains circle:false
c1 overlaps circle:true
输入样例:
在这里给出一组输入。例如:
2 2 5.5
输出样例:
在这里给出相应的输出。例如:
c1 contains point:true
c1 contains circle:false
c1 overlaps circle:true