请大家帮小弟我检查异常

请大家帮我检查错误
package Test;

class Point{
double x;
double y;
public Point(double _x,double _y){
x = _x;
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;
}

}
class Circle{
private Point o;
private double r;
public Circle(Point p,double r){
p = p;
r = r;

}
public Point getP()
{
return o;
}
public void setP(Point p)
{
this.o = p;
}
public double getR()
{
return r;
}
public void setR(double r)
{
this.r = r;
}
boolean disance(Point p){//包不包含一个点就传一个点对象进来
double x = p.getX()-o.getX();
double y = p.getY()-o.getY();
if(x * x + y * y > r * r){
return false;
}
else return true;
}

}

public class Test {
public static void main(String[] args)
{
Circle c = new Circle(new Point(10, 10), 5);
Point p1 = new Point(11, 11);
System.out.println(c.disance(p1));
}
}
这个程序主要实现测试一个点是不是包含在一个园内,程序经运行提示空指针,自己仔细分析就是找不出为什么,请高手指明,谢谢

------解决方案--------------------
Circle的构造方法有问题,导致o和r 没有设置成功,改成下面的就OK了
Java code

class Point{
    double x;
    double y;
    public Point(double _x,double _y){
        x = _x;
        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;
    }

}
class Circle{
    private Point o;
    private double r;
    public Circle(Point p,double r){
        this.o = p; //这里进行修改
        this.r = r; //这里进行修改

    }
    public Point getP()
    {
        return o;
    }
    public void setP(Point p)
    {
        this.o = p;
    }
    public double getR()
    {
        return r;
    }
    public void setR(double r)
    {
        this.r = r;
    }

    boolean disance(Point p){//包不包含一个点就传一个点对象进来
        double x = p.getX()-o.getX();
        double y = p.getY()-o.getY();
        if(x * x + y * y > r * r){
            return false;
        }
        else return true;
    }

}

public class Test {
    public static void main(String[] args)
    {
        Circle c = new Circle(new Point(10, 10), 5);
        Point p1 = new Point(11, 11);
        System.out.println(c.disance(p1));
    }
}

------解决方案--------------------
Java code
class Point {
    double x;
    double y;

    public Point(double _x, double _y) {
        x = _x;
        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;
    }

}

class Circle {
    private Point o;
    private double r;

    public Circle(Point p, double r) {
        // error
        // p = p;
        this.o = p;
        this.r = r;

    }

    public Point getP() {
        return o;
    }

    public void setP(Point p) {
        this.o = p;
    }

    public double getR() {
        return r;
    }

    public void setR(double r) {
        this.r = r;
    }

    boolean disance(Point p) {// 包不包含一个点就传一个点对象进来
        double x = p.getX() - o.getX();
        double y = p.getY() - o.getY();
        if (x * x + y * y > r * r) {
            return false;
        } else
            return true;
    }

}

public class Main {
    public static void main(String[] args) {
        Circle c = new Circle(new Point(10, 10), 5);
        Point p1 = new Point(11, 11);
        System.out.println(c.disance(p1));
    }
}