Rectangle类的函数getX(),getY()等以双精度返回
根据我的经验和Oracle Java API文档,我知道他们这么做,但我不知道为什么。 通过构造函数,我只允许将int
类型的参数传递给Rectangle
类,x,y等的内部数据表示类型为int
而setSize()
仅用于类型为int
参数。 但是为什么像getX()
, getY()
, getWidth()
等所有方法在没有精度时返回double? 为什么不简单int
如预期S'
编辑:我明白它是从Rectangle2D
类派生的,但这仍然没有理由只是不提供任何基于int
的getX()
和getY()
函数,因为与Point
和Point2D
类的区别在于那些方法不抽象。 setLocation()
也不是抽象的。
我相信因为它扩展了Graphics2D中使用的Rectangle2D,它说:
这个类只是存储2D矩形的所有对象的抽象超类。 坐标的实际存储表示留给子类。
因此,如果其子类中的任何一个代表double
的尺寸应该彼此兼容,也许。 如果您阅读Rectangle#getX()的Javadoc:
以double精度返回边界Rectangle的X坐标。
指定者:
类RectangularShape中的public abstract double getX()。
我认为他们把它们用于通用:
如果某些API需要x或y坐标的int
版本,则可以分别直接使用recObject.x或recObject.y。
如果某些API需要x或y坐标的double
版本,则可以使用getX()和getY()
上一篇: Rectangle class functions getX(), getY(), etc. return in double precision