【问题标题】:Why does java.awt.Point return a double for both getX() and getY() instead of int?为什么 java.awt.Point 为 getX() 和 getY() 返回一个 double 而不是 int?
【发布时间】:2015-08-14 12:42:39
【问题描述】:

x 和 y 在 Point 类中都定义为 int。那么为什么getXgetY 方法会返回double

幸好 x 和 y 是公开的,所以我们不需要强制转换为 int 来获取值,但很好奇为什么这些方法不返回 int。

【问题讨论】:

    标签: java graphics point


    【解决方案1】:

    因为它继承了Point2D 类,该类将它们定义为返回双精度。

    它还定义了 2 个内部类,分别将值存储为浮点数和双精度值。

    20 多年后的旧课程可能看起来很奇怪。

    【讨论】:

    • 我认为将屏幕上的像素位置表示为除 int 之外的任何东西都没有任何意义......使用双精度的基本原理是什么?
    • @Constantin 谁说过像素?
    • 在 Java 中是否有更合适的类以像素表示 x 和 y 位置?
    • 我不会使用类来表示像素。这是非常缓慢和浪费的。你的实际问题是什么?
    • @Constantin Point2D 对象可以表示二维坐标空间中的任何点。您可以使用Point2D.DoublePoint2D.Float 来表示地理或几何坐标等内容,并使用Point 来表示整数坐标,例如网格中像素或单元格的位置等。
    【解决方案2】:

    它继承自 java.awt.geom.Point2D,其中包含抽象 #getX。

    public abstract double getX();
    

    我也想知道为什么会这样。也许这就是答案:

    @since 1.2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-21
      • 2019-09-10
      • 1970-01-01
      • 2013-09-23
      • 1970-01-01
      • 2012-07-13
      • 2011-09-08
      • 2013-06-09
      相关资源
      最近更新 更多