首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java类-- setX圆方法

java类-- setX圆方法
EN

Stack Overflow用户
提问于 2014-03-20 02:34:33
回答 1查看 2.4K关注 0票数 0

我的家庭作业有问题。我创建了一个Circle类,但在使用setX和setY方法时遇到一些错误。我不知道该怎么处理。我的代码如下。谢谢。

代码语言:javascript
复制
import java.awt.Point;

public class Circle {
private Point origin;
private double radius;

public Circle(Point o, double r)
{
    setOrigin(o);
    setRadius(r);
}

public Circle(double xValue, double yValue, double r)
{
    origin.setX(xValue);
    origin.setY(yValue);
    setRadius(r);
}

public Circle()
{
    setX(0.0);
    setY(0.0);
    setRadius(1);
}

public Circle(Circle c)
{
    setOrigin(c.getOrigin());
    setRadius(c.getRadius());
}

Point getOrigin()
{
    return new Point(origin);
}

public void setOrigin(Point p)
{
    origin.setX(p.getX());
    origin.setY(p.getY());
}

public void setX(double value)
{
    origin.setX(value);
}

public double getX()
{
    return origin.getX();
}

public void setY(double value)
{
    origin.setY(value);
}

public double getY()
{
    return origin.getY();
}

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

public double getRadius()
{
    return radius;
}

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

public String toString()
{
    return "(" + origin.getX() + ", " + origin.getY() + ", " + radius             + ")";
}

public boolean equals(Circle c)
{
    if (origin.getX() == c.getX() && origin.getY() == c.getY() &&
    getRadius() == c.getRadius())
    {
        return true;
    }
    else
    {
        return false;
    }
}
public boolean doesOverlap(Circle oC)
{
    double distance = Math.sqrt((Math.pow(getX() - oC.getX(), 2) +    Math.pow(getY()-oC.getY(), 2)));

    if ((radius + oC.radius) > distance)
    {
        return true;    
    }
    else
    {
        return false;
    }

}

}

代码语言:javascript
复制
public class Point {
private double x;
private double y;

public Point(double xValue, double yValue)
{
    x = xValue;
    y = yValue;
}

public Point(Point p) {
    this(p.x, p.y);
}

public Point() {
    this(0, 0);
}

public void setX(double xValue)
{
    x = xValue;
}

public double getX()
{
    return x;
}

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

public double getY()
{
    return y;
}

public boolean equals(Point otherPoint)
{
    return (this.x == otherPoint.x) && (this.y == otherPoint.y);
}

public String toString() {
    return "(" + x + ", " + y + ")";
}
}
EN

回答 1

Stack Overflow用户

发布于 2014-03-20 02:42:12

看一下Point的API。没有像setX(...)这样的方法

另外,我认为你应该在你的第二个和第三个构造函数中初始化它

代码语言:javascript
复制
public Circle(double xValue, double yValue, double r){...}
public Circle(){...}

通过

代码语言:javascript
复制
origin = new Point();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22515152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档