Rectangle类函数getX(),getY()等以双精度返回

时间:2013-07-01 09:10:18

标签: java rectangles

根据我的经验和Oracle Java API文档,我知道他们确实这样做了,但我想知道为什么。 通过构造函数,我只允许将int类型参数传递给Rectangle类,x,y等的内部数据表示形式为int,还有{{ 1}}只排除setSize()类型的参数。 但是,为什么像intgetX()getY()等所有方法都会在没有任何精度的情况下返回double?为什么不按预期简单getWidth()

编辑: 我确实理解它来自int类,但仍然没有理由只提供任何基于Rectangle2D的{​​{1}}和int函数,如与getX()getY()类的差异这些方法不是抽象的。 Point也不是抽象的。

2 个答案:

答案 0 :(得分:3)

我相信,因为它扩展了Rectangle2D中使用的Graphics2D,它说:

  

此类只是存储2D矩形的所有对象的抽象超类。 坐标的实际存储表示留给子类。

因此,如果它的任何子类表示double中的维度,那么它们之间的维度应该相互兼容。如果您阅读Rectangle#getX()的Javadoc:

  

以double精度返回边界Rectangle的X坐标。

     

指定者:

     RectangularShape类中的

public abstract double getX()

答案 1 :(得分:0)

我认为他们把它们放在一边使用:
如果某些API需要int版本的x或y坐标,那么它可以分别直接使用recObject.x或recObject.y。 如果某些API需要double版本的x或y坐标,那么它可以使用getX()和getY()