点和圆的关系(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)));
	}

}

运行结果如下:

点和圆的关系(JAVA)