定义一个圆类Circle(定义成最终类), 继承于Graph类, 包含圆心center(Point类型, 需要定义点类Point), 半径r, 定义静态常量PI, 实现父类中的area 和perimeter方法, 并提供判断当前圆是否和另外一个圆相交的方法public boolean isIntersect(Circle c).
时间: 2023-06-03 21:03:16 浏览: 122
好的,我理解了你的问题。以下是我的回答:
Circle类可以定义如下:
final class Circle extends Graph {
private static final double PI = 3.14159;
private Point center;
private double r;
Circle(Point center, double r) {
this.center = center;
this.r = r;
}
@Override
public double area() {
return PI * r * r;
}
@Override
public double perimeter() {
return 2 * PI * r;
}
public boolean isIntersect(Circle c) {
double d = Math.sqrt(Math.pow(center.getX() - c.getCenter().getX(), 2) + Math.pow(center.getY() - c.getCenter().getY(), 2));
return d <= r + c.getR();
}
public Point getCenter() {
return center;
}
public double getR() {
return r;
}
}
其中,Point类可以定义如下:
class Point {
private double x;
private double y;
Point(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
}
这个圆类继承自Graph类,覆盖了父类中的area和perimeter方法,实现了判断是否与另一个圆相交的方法isIntersect。我们还定义了Point类来表示点的坐标,Circle类包含了圆心和半径,同时定义了静态常量PI。注意,这个类是最终类,不能再被继承。
阅读全文