Java 导致错误的Setter/Getter方法。
我很难弄明白为什么我创建了一个没有参数的循环实例,并且在使用setter之后添加值不起作用?当我删除行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;
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的实例化位置
MyCircle c3 = new MyCircle();