【发布时间】: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