0

我有课点:

public class Point
{
    private double _x;
    private double _y;

}

我也有getX()getY()方法。我需要定义2个方法:

1. public boolean isAbove(Point other)
2. public boolean isUnder(Point other)

所以这就是我想出的:

public boolean isAbove(Point other)
{
    if (this._y <= other._y)
    {
        return false;
    }
    else
    {
        return true;
    }
}

public boolean isUnder(Point other)
{   

}

我已经尝试了几件事isUnder并得到了不同的结果。编写这两种方法的正确方法是什么?

** 重要的 **

我必须使用isAbove()方法isUnder()

4

4 回答 4

0

如果你不能改变方法的数量并且“isAbove”实际上意味着“isAtSameHeightOrAbove”

public boolean isAbove(Point other)
{
    return this._y >= other._y;
}

public boolean isUnder(Point other)
{   
    return this._y != other._y && !isAbove(other);
}
于 2012-04-13T10:57:21.367 回答
0

isUnder可以这样实现

public boolean isUnder(Point other)
{   
     return (this._y != other.getY()) && !isAbove(other);
}

并且isAbove可以是

public boolean isUnder(Point other)
    {   
         return (this._y > other.getY());
    }
于 2012-04-13T10:56:24.820 回答
0

如果您只处理 2 种可能性,那么 isUnder = !isAbove 所以您所要做的就是:

return !isAbove(other)

但是,在我看来,两点可以处于同一水平。话虽如此,我不知道上下文,所以我可能是错的。

于 2012-04-13T10:51:51.213 回答
0

如果您希望能够获得它的价值,您将需要一个吸气剂。然后将该方法与您的比较方法一起使用:

public class Point
{
    private double _x;
    private double _y;

public double getY() {
return _y;
   }
public boolean isAbove(Point other)
{
    if (getY() <= other.getY())
    {
        return false;
    }
    else
    {
        return true;
    }
}

}

于 2012-04-13T10:55:56.127 回答