编写Java程序,设计Circle类和Point类,Point类表示平面直角坐标系中的几何点,具有横坐标x和纵坐标y两个属性;Circle类具有以下属性和方法: A.center-圆心 B.radius-半径 对属性进行封装;--- 构造方法 A.无参构造方法:对内部字段进行初始化 B.带有两个参数的构造方法 实例方法: A.getLength():求圆周长 B.getArea(): 求圆面积 静态方法: A.distance(Circle c1,Circle c2): 求两个圆的距离 isCrossed(Circle c1,Circle c2): 判断两个圆是否相交
时间: 2024-03-03 08:48:30 浏览: 17
Point类代码如下:
```java
public class Point {
private double x;
private double y;
public Point() {
this(0, 0);
}
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
}
```
Circle类代码如下:
```java
public class Circle {
private Point center;
private double radius;
public Circle() {
this(new Point(), 0);
}
public Circle(Point center, double radius) {
this.center = center;
this.radius = radius;
}
public Point getCenter() {
return center;
}
public void setCenter(Point center) {
this.center = center;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getLength() {
return 2 * Math.PI * radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
public static double distance(Circle c1, Circle c2) {
double dx = c1.getCenter().getX() - c2.getCenter().getX();
double dy = c1.getCenter().getY() - c2.getCenter().getY();
double distance = Math.sqrt(dx * dx + dy * dy);
return distance - c1.getRadius() - c2.getRadius();
}
public static boolean isCrossed(Circle c1, Circle c2) {
double distance = distance(c1, c2);
if (distance < 0) {
return true;
} else {
return false;
}
}
}
```
其中,distance方法用勾股定理求出两个圆心的距离,然后减去两个圆的半径和,即为两个圆的距离。isCrossed方法判断两个圆的距离是否小于0,如果小于0,则说明两个圆相交。