用Java编写程序,两个带有 get 方法的名为 x 和 y 的 double 型数据域,表明圆的中心点。 • — 个带 get 方法的数据域radius。 • — 个无参构造方法,该方法创建一个(x,y)值为(0,0)且 radius 为1的默认圆。 • 一个构造方法,创建带指定的 x、y 和 radius 的圆。 • — 个返回圆面积的方法 getArea( )。 • — 个返回圆周长的方法 getPerimeter( )。 • 如果给定的点(x,y)在圆内,那么方法 contains(double x, double y)返回 true • 如果给定的圆在这个圆内,那么方法 contains(Circle2D circle)返回 true • 如果给定的圆和这个圆重叠,那么方法 overlaps(Circle2D circle)返回 true 编写测试程序,创建一个Circle2D对象 ,输入圆的中心点x和y 还有半径的值,以这些值为参数构造一个Circle2D对象,显示它的面积和周长,还要显示 c1.contains(3,3)、c1.contains(new Circle2D (4,5,10. 5))和c1.overlaps(new C1rc1e2D(3,5,2.3)) 示例1、 输入: 2 2 5.5 输出: 95.03317777109125 34.55751918948772 true false true 示例2: 输入:8 8 2 输出: 12.566370614359172 12.566370614359172 false false false
时间: 2024-03-24 21:39:21 浏览: 55
以下是 Circle2D 类的 Java 代码实现:
```java
public class Circle2D {
private double x;
private double y;
private double radius;
public Circle2D() {
this(0, 0, 1);
}
public Circle2D(double x, double y, double radius) {
this.x = x;
this.y = y;
this.radius = radius;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
public double getRadius() {
return radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
public double getPerimeter() {
return 2 * Math.PI * radius;
}
public boolean contains(double x, double y) {
return Math.sqrt(Math.pow(x - this.x, 2) + Math.pow(y - this.y, 2)) <= radius;
}
public boolean contains(Circle2D circle) {
return Math.sqrt(Math.pow(circle.getX() - x, 2) + Math.pow(circle.getY() - y, 2)) + circle.getRadius() <= radius;
}
public boolean overlaps(Circle2D circle) {
return Math.sqrt(Math.pow(circle.getX() - x, 2) + Math.pow(circle.getY() - y, 2)) <= radius + circle.getRadius();
}
}
```
以下是测试程序的 Java 代码实现:
```java
import java.util.Scanner;
public class TestCircle2D {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double x = input.nextDouble();
double y = input.nextDouble();
double radius = input.nextDouble();
Circle2D c1 = new Circle2D(x, y, radius);
System.out.println(c1.getArea());
System.out.println(c1.getPerimeter());
System.out.println(c1.contains(3, 3));
System.out.println(c1.contains(new Circle2D(4, 5, 10.5)));
System.out.println(c1.overlaps(new Circle2D(3, 5, 2.3)));
}
}
```
输入示例1的数值(2 2 5.5)后,程序输出结果如下:
```
95.03317777109125
34.55751918948772
true
false
true
```
输入示例2的数值(8 8 2)后,程序输出结果如下:
```
12.566370614359172
12.566370614359172
false
false
false
```
阅读全文