我对Java的Rectangle类有疑问。我想知道它们之间有什么区别
rectangle.getX()
和rectangle.getMinX()
。
当我谷歌搜索它时,在Java文档中我读了getX()
:
以double精度返回边界Rectangle的X坐标。
getMinX()
我已阅读以下内容:
以double精度返回Shape的框架矩形的最小X坐标。
现在我想知道:如果对于一个Rectangle,怎么会有不同的X坐标,应该只有一个:
new Rectangle(0,0,100,100) = p1(0,0)|p2(100,0)|p3(0,100)|p4(100,100).
我明白是否例如getMaxX()
类似于getX()+getWidth()
,但getMinX()
会是什么?
我对此很困惑。
我只需要一个简短的解释,我将非常感激。
答案 0 :(得分:7)
矩形定义为:(x 1 ,y 1 ),(x 2 ,y 2 )。为了我们的目的,让我们表示(x 1 ,y 1 )和矩形的左上角和(x < sub> 2 ,y 2 )作为右下角。
rectangle.getX()
返回x 1 ,而rectangle.getMinX()
返回x k ,以便:对于所有x i in X(x坐标的集合),x k &lt; = x i 。通过构造,矩形类定义x 1 ,使得x 1 = x k ,如源代码中所示:
public double getMinX()
{
return getX();
}
public double getX()
{
return x;
}
并在构造函数中进一步解释:
Rectangle(int x,int y,int width,int height) 构造一个新的Rectangle,其左上角指定为(x,y)并且其中 width和height由同名参数指定。
public Rectangle(int x, int y, int width, int height)
{
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
注意:其他构造函数调用上面的那个。
答案 1 :(得分:2)
你是对的。对于Rectangle
类,getMinX()
与getX()
相同。
当您查看the source code for OpenJDK's Rectangle
时,您可以看到:
public double getMinX() {
return getX();
}
老实说,我还没有在OpenJDK中找到此方法的覆盖。也许我在看错了地方,我不确定。但所有形状(椭圆,弧等)都使用此实现。奇特。
现在,我认为唯一的区别是名称和推荐用法。他们都做同样的事情,但我会在不同的情况下使用其中一个:
getX()
当我需要形状的位置时,一个点getMinX()
当我需要形状的左边界时