点和圆的关系(JAVA)
源代码如下:
package 圆;
//定义点类
class Point{
//成员变量,定义点的横坐标与纵坐标
private double x,y;
//定义有参数x,y的构造方法
Point(double x,double y){
//将局部变量x,y的值赋给成员变量x,y
this.x=x;
this.y=y;
}
//获取点的横坐标x的值
public double getX() {
return x;
}
//获取点的纵坐标y的值
public double getY() {
return y;
}
//设置点的横坐标x的值
public void setX(double x1) {
x=x1;
}
//设置点的纵坐标y的值
public void setY(double y1) {
y=y1;
}
}
//定义圆类
class Circle{
//成员变量,定义原点
private Point o;
//定义圆的半径
private double radius;
//定义有参数p,r的构造方法
Circle(Point p,double r){
o=p;
radius=r;
}
//定义有参数r的构造方法
Circle(double r){
o=new Point(0.0,0.0);
radius=r;
}
//判断点和圆的位置关系,点在圆外返回false,否则返回true
boolean contains(Point p) {
double x=p.getX()-o.getX();
double y=p.getY()-o.getY();
if(x*x+y*y>radius*radius)
return false;
else
return true;
}
//设置圆心坐标
public void seto(double x,double y) {
o.setX(x);
o.setY(y);
}
//获取圆心坐标
public Point geto() {
return o;
}
//获取圆的半径
public double getRadius() {
return radius;
}
//设置圆的半径
public void setRadius(double r) {
radius=r;
}
public double area() {
return 3.14*radius*radius;
}
}
public class 点和圆的关系 {
public static void main(String[] args) {
//创建一个圆对象c1
Circle c1=new Circle(new Point(1.0,2.0),2.0);
//创建一个圆对象c2
Circle c2=new Circle(5.0);
System.out.println("c1:("+c1.geto().getX()+","+c1.geto().getY()+"),"+c1.getRadius());
System.out.println("c2:("+c1.geto().getX()+","+c2.geto().getY()+"),"+c2.getRadius());
System.out.println("c1 area="+c1.area());
System.out.println("c2 area="+c2.area());
System.out.println(c1.contains(new Point(1.0,2.0)));
c1.seto(5.0, 6.0);
c2.setRadius(9.0);
System.out.println("c1:("+c1.geto().getX()+","+c1.geto().getY()+"),"+c1.getRadius());
System.out.println("c2:("+c1.geto().getX()+","+c2.geto().getY()+"),"+c2.getRadius());
System.out.println("c1 area="+c1.area());
System.out.println("c2 area="+c2.area());
System.out.println(c1.contains(new Point(1.0,2.0)));
}
}
运行结果如下: