定义两个类:圆和点,用面向对象思想解决计算两个点之间距离和判断两圆是否相交。
test类
public class test {
public static void main(String[] args) {
Point p1 = new Point(5,3);
Point p2 = new Point(2,4);
System.out.println(p1.distance(p2));
Circle c1 = new Circle(5,p1);
Circle c2 = new Circle(3,p2);
System.out.println(c1.isOverLap(c2));
}
}
Circle类
public class Circle {
int r;
public int getR() {
return r;
}
public void setR(int r) {
this.r = r;
}
Point p;
public Point getP() {
return p;
}
public void setP(Point p) {
this.p = p;
}
public Circle()
{
}
public Circle(int r,Point p)
{
this.r = r;
this.p = p;
}
public boolean isOverLap(Circle other)
{
//计算当前元跟other圆之间距离
double dis = this.p.distance(other.p);
//半径和
double sumR = r+other.r;
// if (sumR>dis)
// {
// return true;
// }
// else
// {
// return false;
// }
// return sumR >= dis;
return sumR>= dis? true:false;
}
}
Point类
public class Point {
private int x;
public int getX()
{
return x;
}
public void setX(int x)
{
this.x = x;
}
private int y;
public int getY()
{
return y;
}
public void setY(int y)
{
this.y = y;
}
public Point()
{
}
public Point (int x,int y)
{
this.x = x;
this.y = y;
}
double distance(Point other)
{
double x = this.x-other.x;
double y = this.y-other.y;
double s = Math.pow(x,2)+Math.pow(y,2);
return Math.pow(s,0.5);
}
}