Java 导致错误的Setter/Getter方法。

Java 导致错误的Setter/Getter方法。,java,getter-setter,Java,Getter Setter,我很难弄明白为什么我创建了一个没有参数的循环实例,并且在使用setter之后添加值不起作用?当我删除行Circle c3=new Circle()时,我的程序运行正常。我也不能打电话给接受者看接受者是否有效 public class MyCircle { private double radius; private double x; private double y; public MyCircle() { x = 0;

我很难弄明白为什么我创建了一个没有参数的循环实例,并且在使用setter之后添加值不起作用?当我删除行
Circle c3=new Circle()
时,我的程序运行正常。我也不能打电话给接受者看接受者是否有效

public class MyCircle {

    private double radius;
    private double x;
    private double y;

    public MyCircle()
    {
        x = 0;
        y = 0;
        radius = 0;
    }
    public MyCircle(double X, double Y, double rad)
    {
        x = X;
        y = Y;
        radius = rad;
    }
    public void setX(double value)
    {
        x = value;
    }

    public void setY(double value)
    {
        y = value;
    }

    public void setRadius(double value)
    {
        radius = value;
    }

    public double getX()
    {
        return x;
    }

    public double getY()
    {
        return y;
    }

    public double getRadius()
    {
        return radius;
    }

    public double getArea()
    {
        return (radius * radius) * Math.PI;
    }

    public boolean doesOverlap(MyCircle oC)
    {
        double distance = Math.sqrt((Math.pow(x - oC.x, 2) + Math.pow(y-oC.y, 2)));

        if ((radius + oC.radius) > distance)
        {
            return true;    
        }
        else
        {
            return false;
        }
    }
    public static void main(String[] args) {
        Circle c3 = new Circle();
        Circle c1 = new Circle(1.0, 2.0, 3.0);
        Circle c4 = new Circle(1.0, 6.0, .5);

        c3.setX(1.0);
        c3.setY(2.0);
        c3.setRadius(5.0);
        System.out.println(c3.getArea());
        System.out.println(c1.getRadius());
        System.out.println(c1.toString());
        System.out.println(c4.toString());
        if (c1.equals(c4))
        {
            System.out.println("c1 equals c4");
        }
        else
        {
            System.out.println("c1 does not equal c4");
        }

        if (c1.doesOverlap(c4))
        {
            System.out.println("c1 Overlaps c4");
        }
        else
        {
            System.out.println("c1 Does Not Overlap c4");
        }

    }
}

您的类被称为
MyCircle
而不是
Circle
。您正在尝试创建
对象

替换:

Circle c3 = new Circle();
与:


您的类名是MyCircle而不是Circle

  • 更改Circle类的名称
  • 或者更改MyCircle的实例化位置

如果您的代码产生错误,请将其显示给我们。请解释一下“不能调用getter”是什么意思。看起来这只是一个简单的错误,你使用了错误的类。anubian noob的答案是1+。下次,请尽量让你的问题更完整。显示所有错误消息并解释您的问题。
MyCircle c3 = new MyCircle();