【问题标题】:Is there any wayt to use Point together with Double?有什么办法可以同时使用 Point 和 Double 吗?
【发布时间】:2021-11-12 05:05:27
【问题描述】:

我想使用 Point 使控制台在另一个类中吐出一些给定的坐标,但如果我理解我正确的错误消息,Point 似乎与 double 不兼容。有没有办法解决这个问题?

package Stad;

import java.awt.*;

public class Stad {

    private String namn;
    private int antal;
    private Point koordinater;

    public Stad(String namn, int antal, double x, double y){
        this.namn = namn;
        this.antal = antal;
        Point xy = new Point(x, y);
        this.koordinater = xy;
    }
    public String getNamn(){
        return namn;
    }

    public int getAntal(){
        return antal;
    }
    public Point getKoordinater(){
        return koordinater;
    }

    public String getInfo(){
        String info = "Stad: " + this.getNamn()
                + "\nAntal invånare: " + this.getAntal()
               + "\nKoordinater: " + this.getKoordinater();
        return info;
    }

}

【问题讨论】:

  • Point2D.Double 怎么样?
  • Point2D 是 Point 的超类。如果不需要双精度信息,您可以使用双精度版本,或者您可以将双精度值转换为 int。
  • Point 是 java.awt 包的一部分,包含“抽象窗口工具包”,因此引入它来表示屏幕坐标。它从未打算用于地理坐标(意思是纬度/经度)。如果您只想显示值(无计算),您可能会使用Point2D.Double
  • 我会尝试您的建议,只是为了获得满意的效果,但我确实想计算距离,你说 Point2D.Double 不适合这个?为什么?我有什么选择?
  • 啊是的更新:它与 Point2D.Double 一起工作,即使输出有点难看。也许我建立自己的方法会更好。 Stad: Hogvallastrand Antal invånare: 1275 Koordinater: Point2D.Double[29.53, 12.81] 进程以退出代码 0 结束

标签: java class constructor point


【解决方案1】:

这是包含 Point2D.Double 的新代码

package Stad;

import java.awt.geom.Point2D;

public class Stad {

    private String namn;
    private int antal;
    private Point2D.Double koordinater;

    public Stad(String namn, int antal, double x, double y){
        this.namn = namn;
        this.antal = antal;
        Point2D.Double xy = new Point2D.Double(x, y);
        this.koordinater = xy;
    }
    public String getNamn(){
        return namn;
    }

    public int getAntal(){
        return antal;
    }
    public Point2D.Double getKoordinater(){
        return koordinater;
    }

    public String getInfo(){
        String info = "Stad: " + this.getNamn()
                + "\nAntal invånare: " + this.getAntal()
               + "\nKoordinater: " + this.getKoordinater();
        return info;
    }

}```

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 2023-02-06
  • 2014-07-01
  • 2011-08-17
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 2020-08-14
  • 2019-02-04
相关资源
最近更新 更多